package adam;

import static com.emeraldparser.symbol.SymbolClasses.*;

import com.emeraldparser.parse.AbstractParser;
import com.emeraldparser.parse.AbstractRule;
import com.emeraldparser.parse.AbstractState;
import com.emeraldparser.symbol.Symbol;
import com.emeraldparser.symbol.Symbols;
import com.emeraldparser.symbol.SymbolClass;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;

public class Parser extends AbstractParser {

	/** '\t' */
	private final SymbolClass symbolClass2 = literal('\t');
	/** expression */
	private final SymbolClass symbolClass1 = named("expression");
	/** '\n' */
	private final SymbolClass symbolClass3 = literal('\n');
	/** "\t" */
	private final SymbolClass symbolClass4 = literal("\t");
	/** '\r' */
	private final SymbolClass symbolClass6 = literal('\r');
	/** (expression*) */
	private final SymbolClass symbolClass5 = concat(repeated(named("expression")));
	/** (expression "=" expression) */
	private final SymbolClass symbolClass7 = concat(named("expression"), literal("="), named("expression"));
	/** ("=") */
	private final SymbolClass symbolClass8 = concat(literal("="));
	/** ("?") */
	private final SymbolClass symbolClass9 = concat(literal("?"));
	/** literal */
	private final SymbolClass symbolClass10 = named("literal");
	/** production_section? */
	private final SymbolClass symbolClass11 = optional(named("production_section"));
	/** '+' */
	private final SymbolClass symbolClass13 = literal('+');
	/** ("+") */
	private final SymbolClass symbolClass12 = concat(literal("+"));
	/** rule* */
	private final SymbolClass symbolClass14 = repeated(named("rule"));
	/** (('a'..'z')) */
	private final SymbolClass symbolClass15 = concat(range('a', 'z'));
	/** ("*") */
	private final SymbolClass symbolClass16 = concat(literal("*"));
	/** ')' */
	private final SymbolClass symbolClass17 = literal(')');
	/** '*' */
	private final SymbolClass symbolClass18 = literal('*');
	/** (("|" expression) ("|" expression)*) */
	private final SymbolClass symbolClass19 = concat(concat(literal("|"), named("expression")), repeated(concat(literal("|"), named("expression"))));
	/** ")" */
	private final SymbolClass symbolClass20 = literal(")");
	/** "*" */
	private final SymbolClass symbolClass21 = literal("*");
	/** '(' */
	private final SymbolClass symbolClass22 = literal('(');
	/** "(" */
	private final SymbolClass symbolClass23 = literal("(");
	/** '3' */
	private final SymbolClass symbolClass24 = literal('3');
	/** '4' */
	private final SymbolClass symbolClass26 = literal('4');
	/** ("\"") */
	private final SymbolClass symbolClass25 = concat(literal("\""));
	/** '1' */
	private final SymbolClass symbolClass27 = literal('1');
	/** '2' */
	private final SymbolClass symbolClass28 = literal('2');
	/** "\"" */
	private final SymbolClass symbolClass31 = literal("\"");
	/** '0' */
	private final SymbolClass symbolClass30 = literal('0');
	/** () */
	private final SymbolClass symbolClass29 = concat();
	/** (")") */
	private final SymbolClass symbolClass32 = concat(literal(")"));
	/** '.' */
	private final SymbolClass symbolClass34 = literal('.');
	/** ("(") */
	private final SymbolClass symbolClass33 = concat(literal("("));
	/** (("(" expression (("|" expression) ("|" expression)*) ")")) */
	private final SymbolClass symbolClass35 = concat(concat(literal("("), named("expression"), concat(concat(literal("|"), named("expression")), repeated(concat(literal("|"), named("expression")))), literal(")")));
	/** token_section? */
	private final SymbolClass symbolClass38 = optional(named("token_section"));
	/** ("\"" ('0'..'9') "\"") */
	private final SymbolClass symbolClass37 = concat(literal("\""), range('0', '9'), literal("\""));
	/** (token_section? production_section?) */
	private final SymbolClass symbolClass36 = concat(optional(named("token_section")), optional(named("production_section")));
	/** '"' */
	private final SymbolClass symbolClass39 = literal('"');
	/** ' ' */
	private final SymbolClass symbolClass40 = literal(' ');
	/** ("Tokens") */
	private final SymbolClass symbolClass41 = concat(literal("Tokens"));
	/** (('a'..'z') | "_") */
	private final SymbolClass symbolClass42 = any(range('a', 'z'), literal("_"));
	/** ("|") */
	private final SymbolClass symbolClass43 = concat(literal("|"));
	/** ('0'..'9') */
	private final SymbolClass symbolClass44 = range('0', '9');
	/** identifier */
	private final SymbolClass symbolClass46 = named("identifier");
	/** ((('a'..'z') | "_")*) */
	private final SymbolClass symbolClass45 = concat(repeated(any(range('a', 'z'), literal("_"))));
	/** "Tokens" */
	private final SymbolClass symbolClass48 = literal("Tokens");
	/** production_section */
	private final SymbolClass symbolClass47 = named("production_section");
	/** ("_") */
	private final SymbolClass symbolClass49 = concat(literal("_"));
	/** ^ */
	private final SymbolClass symbolClass50 = startOfInput();
	/** ((("|" expression) ("|" expression)*)) */
	private final SymbolClass symbolClass51 = concat(concat(concat(literal("|"), named("expression")), repeated(concat(literal("|"), named("expression")))));
	/** expression* */
	private final SymbolClass symbolClass52 = repeated(named("expression"));
	/** ("|" expression) */
	private final SymbolClass symbolClass53 = concat(literal("|"), named("expression"));
	/** "|" */
	private final SymbolClass symbolClass54 = literal("|");
	/** $ */
	private final SymbolClass symbolClass55 = endOfInput();
	/** (^ grammar $) */
	private final SymbolClass symbolClass56 = concat(startOfInput(), named("grammar"), endOfInput());
	/** (('0'..'9')) */
	private final SymbolClass symbolClass57 = concat(range('0', '9'));
	/** (("|" expression)*) */
	private final SymbolClass symbolClass58 = concat(repeated(concat(literal("|"), named("expression"))));
	/** ("Productions") */
	private final SymbolClass symbolClass59 = concat(literal("Productions"));
	/** ((('a'..'z') | "_")) */
	private final SymbolClass symbolClass60 = concat(any(range('a', 'z'), literal("_")));
	/** 'y' */
	private final SymbolClass symbolClass61 = literal('y');
	/** 'z' */
	private final SymbolClass symbolClass62 = literal('z');
	/** '|' */
	private final SymbolClass symbolClass63 = literal('|');
	/** 'u' */
	private final SymbolClass symbolClass64 = literal('u');
	/** (production_section?) */
	private final SymbolClass symbolClass65 = concat(optional(named("production_section")));
	/** 'v' */
	private final SymbolClass symbolClass66 = literal('v');
	/** ("|" expression)* */
	private final SymbolClass symbolClass67 = repeated(concat(literal("|"), named("expression")));
	/** 'w' */
	private final SymbolClass symbolClass68 = literal('w');
	/** 'x' */
	private final SymbolClass symbolClass69 = literal('x');
	/** (("|" expression)) */
	private final SymbolClass symbolClass70 = concat(concat(literal("|"), named("expression")));
	/** (token_section?) */
	private final SymbolClass symbolClass71 = concat(optional(named("token_section")));
	/** ((('a'..'z') | "_") (('a'..'z') | "_")*) */
	private final SymbolClass symbolClass72 = concat(any(range('a', 'z'), literal("_")), repeated(any(range('a', 'z'), literal("_"))));
	/** ("\t") */
	private final SymbolClass symbolClass73 = concat(literal("\t"));
	/** "?" */
	private final SymbolClass symbolClass74 = literal("?");
	/** 'P' */
	private final SymbolClass symbolClass75 = literal('P');
	/** (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")")) */
	private final SymbolClass symbolClass76 = any(named("identifier"), concat(literal("("), repeated(named("expression")), literal(")")), concat(literal("("), named("expression"), concat(concat(literal("|"), named("expression")), repeated(concat(literal("|"), named("expression")))), literal(")")), concat(named("expression"), literal("?")), concat(named("expression"), literal("*")), concat(named("expression"), literal("+")), concat(literal("("), named("literal"), literal(".."), named("literal"), literal(")")));
	/** ((expression "?")) */
	private final SymbolClass symbolClass77 = concat(concat(named("expression"), literal("?")));
	/** 'T' */
	private final SymbolClass symbolClass78 = literal('T');
	/** "=" */
	private final SymbolClass symbolClass79 = literal("=");
	/** ("(" expression* ")") */
	private final SymbolClass symbolClass80 = concat(literal("("), repeated(named("expression")), literal(")"));
	/** '=' */
	private final SymbolClass symbolClass81 = literal('=');
	/** (("(" expression* ")")) */
	private final SymbolClass symbolClass82 = concat(concat(literal("("), repeated(named("expression")), literal(")")));
	/** ("(" literal ".." literal ")") */
	private final SymbolClass symbolClass83 = concat(literal("("), named("literal"), literal(".."), named("literal"), literal(")"));
	/** ((expression "*")) */
	private final SymbolClass symbolClass84 = concat(concat(named("expression"), literal("*")));
	/** '?' */
	private final SymbolClass symbolClass85 = literal('?');
	/** token_section */
	private final SymbolClass symbolClass86 = named("token_section");
	/** ((expression "+")) */
	private final SymbolClass symbolClass87 = concat(concat(named("expression"), literal("+")));
	/** "+" */
	private final SymbolClass symbolClass88 = literal("+");
	/** ('a'..'z') */
	private final SymbolClass symbolClass89 = range('a', 'z');
	/** ("\r\n") */
	private final SymbolClass symbolClass90 = concat(literal("\r\n"));
	/** ("(" expression (("|" expression) ("|" expression)*) ")") */
	private final SymbolClass symbolClass91 = concat(literal("("), named("expression"), concat(concat(literal("|"), named("expression")), repeated(concat(literal("|"), named("expression")))), literal(")"));
	/** '5' */
	private final SymbolClass symbolClass92 = literal('5');
	/** '6' */
	private final SymbolClass symbolClass93 = literal('6');
	/** '7' */
	private final SymbolClass symbolClass94 = literal('7');
	/** '8' */
	private final SymbolClass symbolClass95 = literal('8');
	/** ("Tokens" rule*) */
	private final SymbolClass symbolClass96 = concat(literal("Tokens"), repeated(named("rule")));
	/** '9' */
	private final SymbolClass symbolClass97 = literal('9');
	/** "\r\n" */
	private final SymbolClass symbolClass98 = literal("\r\n");
	/** (expression "?") */
	private final SymbolClass symbolClass100 = concat(named("expression"), literal("?"));
	/** 'p' */
	private final SymbolClass symbolClass99 = literal('p');
	/** 'o' */
	private final SymbolClass symbolClass101 = literal('o');
	/** 'n' */
	private final SymbolClass symbolClass102 = literal('n');
	/** "_" */
	private final SymbolClass symbolClass104 = literal("_");
	/** 'm' */
	private final SymbolClass symbolClass103 = literal('m');
	/** 't' */
	private final SymbolClass symbolClass105 = literal('t');
	/** start */
	private final SymbolClass symbolClass107 = named("start");
	/** 's' */
	private final SymbolClass symbolClass106 = literal('s');
	/** 'r' */
	private final SymbolClass symbolClass109 = literal('r');
	/** ("Productions" rule*) */
	private final SymbolClass symbolClass108 = concat(literal("Productions"), repeated(named("rule")));
	/** 'q' */
	private final SymbolClass symbolClass111 = literal('q');
	/** (rule*) */
	private final SymbolClass symbolClass110 = concat(repeated(named("rule")));
	/** 'h' */
	private final SymbolClass symbolClass113 = literal('h');
	/** "Productions" */
	private final SymbolClass symbolClass112 = literal("Productions");
	/** 'g' */
	private final SymbolClass symbolClass114 = literal('g');
	/** grammar */
	private final SymbolClass symbolClass117 = named("grammar");
	/** 'f' */
	private final SymbolClass symbolClass116 = literal('f');
	/** (("(" literal ".." literal ")")) */
	private final SymbolClass symbolClass115 = concat(concat(literal("("), named("literal"), literal(".."), named("literal"), literal(")")));
	/** 'e' */
	private final SymbolClass symbolClass118 = literal('e');
	/** 'l' */
	private final SymbolClass symbolClass119 = literal('l');
	/** rule */
	private final SymbolClass symbolClass121 = named("rule");
	/** 'k' */
	private final SymbolClass symbolClass120 = literal('k');
	/** 'j' */
	private final SymbolClass symbolClass122 = literal('j');
	/** 'i' */
	private final SymbolClass symbolClass123 = literal('i');
	/** '_' */
	private final SymbolClass symbolClass124 = literal('_');
	/** (' ' | '\n' | "\r\n" | "\t") */
	private final SymbolClass symbolClass125 = any(literal(' '), literal('\n'), literal("\r\n"), literal("\t"));
	/** (('a'..'z') | "_")* */
	private final SymbolClass symbolClass127 = repeated(any(range('a', 'z'), literal("_")));
	/** 'c' */
	private final SymbolClass symbolClass126 = literal('c');
	/** (expression "+") */
	private final SymbolClass symbolClass130 = concat(named("expression"), literal("+"));
	/** 'd' */
	private final SymbolClass symbolClass129 = literal('d');
	/** ("..") */
	private final SymbolClass symbolClass128 = concat(literal(".."));
	/** 'a' */
	private final SymbolClass symbolClass131 = literal('a');
	/** 'b' */
	private final SymbolClass symbolClass132 = literal('b');
	/** (expression "*") */
	private final SymbolClass symbolClass133 = concat(named("expression"), literal("*"));
	/** ".." */
	private final SymbolClass symbolClass134 = literal("..");

	private static abstract class Rule extends AbstractRule {

		private Collection<? extends State> startStates;

		protected abstract Collection<? extends State> computeStartStates();

		@Override
		public Collection<? extends State> getStartStates() {
			if (startStates == null) {
				startStates = computeStartStates();
			}

			return startStates;
		}

	}

	/** (token_section?) = token_section? */
	private final Rule rule1 = new Rule() {

		@Override
		public SymbolClass getLeftHandSide() {
			return symbolClass71;
		}

		@Override
		public SymbolClass getRightHandSide() {
			return symbolClass38;
		}

		@Override
		protected Collection<? extends State> computeStartStates() {
			return ImmutableSet.<State>builder().add(state11).build();
		}

		@Override
		public List<? extends Symbol<?>> reduce(List<? extends Symbol<?>> rightHandSymbols) {
			return ImmutableList.<Symbol<?>>builder().add(Symbol.create(symbolClass38, rightHandSymbols)).build();
		}

		@Override
		public String toString() {
			return "(token_section?) = token_section?";
		}

	};

	/** start = (^ grammar $) */
	private final Rule rule2 = new Rule() {

		@Override
		public SymbolClass getLeftHandSide() {
			return symbolClass107;
		}

		@Override
		public SymbolClass getRightHandSide() {
			return symbolClass56;
		}

		@Override
		protected Collection<? extends State> computeStartStates() {
			return ImmutableSet.<State>builder().add(state83).build();
		}

		@Override
		public List<? extends Symbol<?>> reduce(List<? extends Symbol<?>> rightHandSymbols) {
			return ImmutableList.<Symbol<?>>builder().add(Symbol.create(symbolClass107, rightHandSymbols)).build();
		}

		@Override
		public String toString() {
			return "start = (^ grammar $)";
		}

	};

	/** (('a'..'z')) = ('a'..'z') */
	private final Rule rule3 = new Rule() {

		@Override
		public SymbolClass getLeftHandSide() {
			return symbolClass15;
		}

		@Override
		public SymbolClass getRightHandSide() {
			return symbolClass89;
		}

		@Override
		protected Collection<? extends State> computeStartStates() {
			return ImmutableSet.<State>builder().add(state14).add(state30).add(state40).add(state44).add(state67).add(state74).add(state81).add(state82).add(state86).add(state87).build();
		}

		@Override
		public List<? extends Symbol<?>> reduce(List<? extends Symbol<?>> rightHandSymbols) {
			return ImmutableList.<Symbol<?>>builder().add(Symbol.create(symbolClass89, rightHandSymbols)).build();
		}

		@Override
		public String toString() {
			return "(('a'..'z')) = ('a'..'z')";
		}

	};

	/** rule = (expression "=" expression) */
	private final Rule rule4 = new Rule() {

		@Override
		public SymbolClass getLeftHandSide() {
			return symbolClass121;
		}

		@Override
		public SymbolClass getRightHandSide() {
			return symbolClass7;
		}

		@Override
		protected Collection<? extends State> computeStartStates() {
			return ImmutableSet.<State>builder().add(state40).add(state74).add(state82).build();
		}

		@Override
		public List<? extends Symbol<?>> reduce(List<? extends Symbol<?>> rightHandSymbols) {
			return ImmutableList.<Symbol<?>>builder().add(Symbol.create(symbolClass121, rightHandSymbols)).build();
		}

		@Override
		public String toString() {
			return "rule = (expression \"=\" expression)";
		}

	};

	/** identifier = ((('a'..'z') | "_") (('a'..'z') | "_")*) */
	private final Rule rule5 = new Rule() {

		@Override
		public SymbolClass getLeftHandSide() {
			return symbolClass46;
		}

		@Override
		public SymbolClass getRightHandSide() {
			return symbolClass72;
		}

		@Override
		protected Collection<? extends State> computeStartStates() {
			return ImmutableSet.<State>builder().add(state14).add(state40).add(state67).add(state74).add(state81).add(state82).add(state86).add(state87).build();
		}

		@Override
		public List<? extends Symbol<?>> reduce(List<? extends Symbol<?>> rightHandSymbols) {
			return ImmutableList.of(Symbol.create(symbolClass46, concatenateStrings(rightHandSymbols)));
		}

		@Override
		public String toString() {
			return "identifier = ((('a'..'z') | \"_\") (('a'..'z') | \"_\")*)";
		}

	};

	/** ("=") = "=" */
	private final Rule rule7 = new Rule() {

		@Override
		public SymbolClass getLeftHandSide() {
			return symbolClass8;
		}

		@Override
		public SymbolClass getRightHandSide() {
			return symbolClass79;
		}

		@Override
		protected Collection<? extends State> computeStartStates() {
			return ImmutableSet.<State>builder().add(state73).build();
		}

		@Override
		public List<? extends Symbol<?>> reduce(List<? extends Symbol<?>> rightHandSymbols) {
			return ImmutableList.<Symbol<?>>builder().add(Symbol.create(symbolClass79, rightHandSymbols)).build();
		}

		@Override
		public String toString() {
			return "(\"=\") = \"=\"";
		}

	};

	/** ("Productions") = "Productions" */
	private final Rule rule6 = new Rule() {

		@Override
		public SymbolClass getLeftHandSide() {
			return symbolClass59;
		}

		@Override
		public SymbolClass getRightHandSide() {
			return symbolClass112;
		}

		@Override
		protected Collection<? extends State> computeStartStates() {
			return ImmutableSet.<State>builder().add(state35).build();
		}

		@Override
		public List<? extends Symbol<?>> reduce(List<? extends Symbol<?>> rightHandSymbols) {
			return ImmutableList.<Symbol<?>>builder().add(Symbol.create(symbolClass112, rightHandSymbols)).build();
		}

		@Override
		public String toString() {
			return "(\"Productions\") = \"Productions\"";
		}

	};

	/** ((('a'..'z') | "_")) = (('a'..'z') | "_") */
	private final Rule rule9 = new Rule() {

		@Override
		public SymbolClass getLeftHandSide() {
			return symbolClass60;
		}

		@Override
		public SymbolClass getRightHandSide() {
			return symbolClass42;
		}

		@Override
		protected Collection<? extends State> computeStartStates() {
			return ImmutableSet.<State>builder().add(state14).add(state30).add(state40).add(state44).add(state67).add(state74).add(state81).add(state82).add(state86).add(state87).build();
		}

		@Override
		public List<? extends Symbol<?>> reduce(List<? extends Symbol<?>> rightHandSymbols) {
			return ImmutableList.<Symbol<?>>builder().add(Symbol.create(symbolClass42, rightHandSymbols)).build();
		}

		@Override
		public String toString() {
			return "((('a'..'z') | \"_\")) = (('a'..'z') | \"_\")";
		}

	};

	/** ("Tokens") = "Tokens" */
	private final Rule rule8 = new Rule() {

		@Override
		public SymbolClass getLeftHandSide() {
			return symbolClass41;
		}

		@Override
		public SymbolClass getRightHandSide() {
			return symbolClass48;
		}

		@Override
		protected Collection<? extends State> computeStartStates() {
			return ImmutableSet.<State>builder().add(state11).build();
		}

		@Override
		public List<? extends Symbol<?>> reduce(List<? extends Symbol<?>> rightHandSymbols) {
			return ImmutableList.<Symbol<?>>builder().add(Symbol.create(symbolClass48, rightHandSymbols)).build();
		}

		@Override
		public String toString() {
			return "(\"Tokens\") = \"Tokens\"";
		}

	};

	/** ((expression "*")) = (expression "*") */
	private final Rule rule12 = new Rule() {

		@Override
		public SymbolClass getLeftHandSide() {
			return symbolClass84;
		}

		@Override
		public SymbolClass getRightHandSide() {
			return symbolClass133;
		}

		@Override
		protected Collection<? extends State> computeStartStates() {
			return ImmutableSet.<State>builder().add(state14).add(state40).add(state67).add(state74).add(state81).add(state82).add(state86).add(state87).build();
		}

		@Override
		public List<? extends Symbol<?>> reduce(List<? extends Symbol<?>> rightHandSymbols) {
			return ImmutableList.<Symbol<?>>builder().add(Symbol.create(symbolClass133, rightHandSymbols)).build();
		}

		@Override
		public String toString() {
			return "((expression \"*\")) = (expression \"*\")";
		}

	};

	/** literal = ("\"" ('0'..'9') "\"") */
	private final Rule rule11 = new Rule() {

		@Override
		public SymbolClass getLeftHandSide() {
			return symbolClass10;
		}

		@Override
		public SymbolClass getRightHandSide() {
			return symbolClass37;
		}

		@Override
		protected Collection<? extends State> computeStartStates() {
			return ImmutableSet.<State>builder().add(state34).add(state81).build();
		}

		@Override
		public List<? extends Symbol<?>> reduce(List<? extends Symbol<?>> rightHandSymbols) {
			return ImmutableList.of(Symbol.create(symbolClass10, concatenateStrings(rightHandSymbols)));
		}

		@Override
		public String toString() {
			return "literal = (\"\\\"\" ('0'..'9') \"\\\"\")";
		}

	};

	/** ("\"") = "\"" */
	private final Rule rule10 = new Rule() {

		@Override
		public SymbolClass getLeftHandSide() {
			return symbolClass25;
		}

		@Override
		public SymbolClass getRightHandSide() {
			return symbolClass31;
		}

		@Override
		protected Collection<? extends State> computeStartStates() {
			return ImmutableSet.<State>builder().add(state34).add(state58).add(state81).build();
		}

		@Override
		public List<? extends Symbol<?>> reduce(List<? extends Symbol<?>> rightHandSymbols) {
			return ImmutableList.<Symbol<?>>builder().add(Symbol.create(symbolClass31, rightHandSymbols)).build();
		}

		@Override
		public String toString() {
			return "(\"\\\"\") = \"\\\"\"";
		}

	};

	/** () = (' ' | '\n' | "\r\n" | "\t") */
	private final Rule rule13 = new Rule() {

		@Override
		public SymbolClass getLeftHandSide() {
			return symbolClass29;
		}

		@Override
		public SymbolClass getRightHandSide() {
			return symbolClass125;
		}

		@Override
		protected Collection<? extends State> computeStartStates() {
			return ImmutableSet.<State>builder().add(state1).add(state2).add(state4).add(state5).add(state10).add(state11).add(state14).add(state16).add(state19).add(state22).add(state23).add(state25).add(state26).add(state27).add(state28).add(state29).add(state30).add(state32).add(state33).add(state34).add(state35).add(state39).add(state40).add(state44).add(state49).add(state50).add(state51).add(state52).add(state55).add(state57).add(state58).add(state60).add(state63).add(state64).add(state65).add(state66).add(state67).add(state68).add(state70).add(state73).add(state74).add(state75).add(state76).add(state81).add(state82).add(state83).add(state86).add(state87).add(state88).add(state89).add(state92).add(state93).add(state94).build();
		}

		@Override
		public List<? extends Symbol<?>> reduce(List<? extends Symbol<?>> rightHandSymbols) {
			return ImmutableList.<Symbol<?>>builder().build();
		}

		@Override
		public String toString() {
			return "() = (' ' | '\\n' | \"\\r\\n\" | \"\\t\")";
		}

	};

	/** ((("|" expression) ("|" expression)*)) = (("|" expression) ("|" expression)*) */
	private final Rule rule14 = new Rule() {

		@Override
		public SymbolClass getLeftHandSide() {
			return symbolClass51;
		}

		@Override
		public SymbolClass getRightHandSide() {
			return symbolClass19;
		}

		@Override
		protected Collection<? extends State> computeStartStates() {
			return ImmutableSet.<State>builder().add(state14).build();
		}

		@Override
		public List<? extends Symbol<?>> reduce(List<? extends Symbol<?>> rightHandSymbols) {
			return ImmutableList.<Symbol<?>>builder().add(Symbol.create(symbolClass19, rightHandSymbols)).build();
		}

		@Override
		public String toString() {
			return "(((\"|\" expression) (\"|\" expression)*)) = ((\"|\" expression) (\"|\" expression)*)";
		}

	};

	/** (("|" expression)*) = ("|" expression)* */
	private final Rule rule15 = new Rule() {

		@Override
		public SymbolClass getLeftHandSide() {
			return symbolClass58;
		}

		@Override
		public SymbolClass getRightHandSide() {
			return symbolClass67;
		}

		@Override
		protected Collection<? extends State> computeStartStates() {
			return ImmutableSet.<State>builder().add(state5).build();
		}

		@Override
		public List<? extends Symbol<?>> reduce(List<? extends Symbol<?>> rightHandSymbols) {
			return ImmutableList.<Symbol<?>>builder().add(Symbol.create(symbolClass67, rightHandSymbols)).build();
		}

		@Override
		public String toString() {
			return "((\"|\" expression)*) = (\"|\" expression)*";
		}

	};

	/** grammar = (token_section? production_section?) */
	private final Rule rule16 = new Rule() {

		@Override
		public SymbolClass getLeftHandSide() {
			return symbolClass117;
		}

		@Override
		public SymbolClass getRightHandSide() {
			return symbolClass36;
		}

		@Override
		protected Collection<? extends State> computeStartStates() {
			return ImmutableSet.<State>builder().add(state11).build();
		}

		@Override
		public List<? extends Symbol<?>> reduce(List<? extends Symbol<?>> rightHandSymbols) {
			return ImmutableList.<Symbol<?>>builder().add(Symbol.create(symbolClass117, rightHandSymbols)).build();
		}

		@Override
		public String toString() {
			return "grammar = (token_section? production_section?)";
		}

	};

	/** ("(") = "(" */
	private final Rule rule17 = new Rule() {

		@Override
		public SymbolClass getLeftHandSide() {
			return symbolClass33;
		}

		@Override
		public SymbolClass getRightHandSide() {
			return symbolClass23;
		}

		@Override
		protected Collection<? extends State> computeStartStates() {
			return ImmutableSet.<State>builder().add(state14).add(state40).add(state67).add(state74).add(state81).add(state82).add(state86).add(state87).build();
		}

		@Override
		public List<? extends Symbol<?>> reduce(List<? extends Symbol<?>> rightHandSymbols) {
			return ImmutableList.<Symbol<?>>builder().add(Symbol.create(symbolClass23, rightHandSymbols)).build();
		}

		@Override
		public String toString() {
			return "(\"(\") = \"(\"";
		}

	};

	/** ((expression "?")) = (expression "?") */
	private final Rule rule18 = new Rule() {

		@Override
		public SymbolClass getLeftHandSide() {
			return symbolClass77;
		}

		@Override
		public SymbolClass getRightHandSide() {
			return symbolClass100;
		}

		@Override
		protected Collection<? extends State> computeStartStates() {
			return ImmutableSet.<State>builder().add(state14).add(state40).add(state67).add(state74).add(state81).add(state82).add(state86).add(state87).build();
		}

		@Override
		public List<? extends Symbol<?>> reduce(List<? extends Symbol<?>> rightHandSymbols) {
			return ImmutableList.<Symbol<?>>builder().add(Symbol.create(symbolClass100, rightHandSymbols)).build();
		}

		@Override
		public String toString() {
			return "((expression \"?\")) = (expression \"?\")";
		}

	};

	/** production_section = ("Productions" rule*) */
	private final Rule rule19 = new Rule() {

		@Override
		public SymbolClass getLeftHandSide() {
			return symbolClass47;
		}

		@Override
		public SymbolClass getRightHandSide() {
			return symbolClass108;
		}

		@Override
		protected Collection<? extends State> computeStartStates() {
			return ImmutableSet.<State>builder().add(state35).build();
		}

		@Override
		public List<? extends Symbol<?>> reduce(List<? extends Symbol<?>> rightHandSymbols) {
			return ImmutableList.<Symbol<?>>builder().add(Symbol.create(symbolClass47, rightHandSymbols)).build();
		}

		@Override
		public String toString() {
			return "production_section = (\"Productions\" rule*)";
		}

	};

	/** ("*") = "*" */
	private final Rule rule20 = new Rule() {

		@Override
		public SymbolClass getLeftHandSide() {
			return symbolClass16;
		}

		@Override
		public SymbolClass getRightHandSide() {
			return symbolClass21;
		}

		@Override
		protected Collection<? extends State> computeStartStates() {
			return ImmutableSet.<State>builder().add(state14).add(state68).add(state73).add(state87).add(state88).build();
		}

		@Override
		public List<? extends Symbol<?>> reduce(List<? extends Symbol<?>> rightHandSymbols) {
			return ImmutableList.<Symbol<?>>builder().add(Symbol.create(symbolClass21, rightHandSymbols)).build();
		}

		@Override
		public String toString() {
			return "(\"*\") = \"*\"";
		}

	};

	/** ("|") = "|" */
	private final Rule rule21 = new Rule() {

		@Override
		public SymbolClass getLeftHandSide() {
			return symbolClass43;
		}

		@Override
		public SymbolClass getRightHandSide() {
			return symbolClass54;
		}

		@Override
		protected Collection<? extends State> computeStartStates() {
			return ImmutableSet.<State>builder().add(state5).add(state14).add(state16).build();
		}

		@Override
		public List<? extends Symbol<?>> reduce(List<? extends Symbol<?>> rightHandSymbols) {
			return ImmutableList.<Symbol<?>>builder().add(Symbol.create(symbolClass54, rightHandSymbols)).build();
		}

		@Override
		public String toString() {
			return "(\"|\") = \"|\"";
		}

	};

	/** ((('a'..'z') | "_")*) = (('a'..'z') | "_")* */
	private final Rule rule22 = new Rule() {

		@Override
		public SymbolClass getLeftHandSide() {
			return symbolClass45;
		}

		@Override
		public SymbolClass getRightHandSide() {
			return symbolClass127;
		}

		@Override
		protected Collection<? extends State> computeStartStates() {
			return ImmutableSet.<State>builder().add(state44).build();
		}

		@Override
		public List<? extends Symbol<?>> reduce(List<? extends Symbol<?>> rightHandSymbols) {
			return ImmutableList.<Symbol<?>>builder().add(Symbol.create(symbolClass127, rightHandSymbols)).build();
		}

		@Override
		public String toString() {
			return "((('a'..'z') | \"_\")*) = (('a'..'z') | \"_\")*";
		}

	};

	/** ((expression "+")) = (expression "+") */
	private final Rule rule23 = new Rule() {

		@Override
		public SymbolClass getLeftHandSide() {
			return symbolClass87;
		}

		@Override
		public SymbolClass getRightHandSide() {
			return symbolClass130;
		}

		@Override
		protected Collection<? extends State> computeStartStates() {
			return ImmutableSet.<State>builder().add(state14).add(state40).add(state67).add(state74).add(state81).add(state82).add(state86).add(state87).build();
		}

		@Override
		public List<? extends Symbol<?>> reduce(List<? extends Symbol<?>> rightHandSymbols) {
			return ImmutableList.<Symbol<?>>builder().add(Symbol.create(symbolClass130, rightHandSymbols)).build();
		}

		@Override
		public String toString() {
			return "((expression \"+\")) = (expression \"+\")";
		}

	};

	/** (("(" expression* ")")) = ("(" expression* ")") */
	private final Rule rule24 = new Rule() {

		@Override
		public SymbolClass getLeftHandSide() {
			return symbolClass82;
		}

		@Override
		public SymbolClass getRightHandSide() {
			return symbolClass80;
		}

		@Override
		protected Collection<? extends State> computeStartStates() {
			return ImmutableSet.<State>builder().add(state14).add(state40).add(state67).add(state74).add(state81).add(state82).add(state86).add(state87).build();
		}

		@Override
		public List<? extends Symbol<?>> reduce(List<? extends Symbol<?>> rightHandSymbols) {
			return ImmutableList.<Symbol<?>>builder().add(Symbol.create(symbolClass80, rightHandSymbols)).build();
		}

		@Override
		public String toString() {
			return "((\"(\" expression* \")\")) = (\"(\" expression* \")\")";
		}

	};

	/** (expression*) = expression* */
	private final Rule rule26 = new Rule() {

		@Override
		public SymbolClass getLeftHandSide() {
			return symbolClass5;
		}

		@Override
		public SymbolClass getRightHandSide() {
			return symbolClass52;
		}

		@Override
		protected Collection<? extends State> computeStartStates() {
			return ImmutableSet.<State>builder().add(state81).build();
		}

		@Override
		public List<? extends Symbol<?>> reduce(List<? extends Symbol<?>> rightHandSymbols) {
			return ImmutableList.<Symbol<?>>builder().add(Symbol.create(symbolClass52, rightHandSymbols)).build();
		}

		@Override
		public String toString() {
			return "(expression*) = expression*";
		}

	};

	/** (("(" expression (("|" expression) ("|" expression)*) ")")) = ("(" expression (("|" expression) ("|" expression)*) ")") */
	private final Rule rule25 = new Rule() {

		@Override
		public SymbolClass getLeftHandSide() {
			return symbolClass35;
		}

		@Override
		public SymbolClass getRightHandSide() {
			return symbolClass91;
		}

		@Override
		protected Collection<? extends State> computeStartStates() {
			return ImmutableSet.<State>builder().add(state14).add(state40).add(state67).add(state74).add(state81).add(state82).add(state86).add(state87).build();
		}

		@Override
		public List<? extends Symbol<?>> reduce(List<? extends Symbol<?>> rightHandSymbols) {
			return ImmutableList.<Symbol<?>>builder().add(Symbol.create(symbolClass91, rightHandSymbols)).build();
		}

		@Override
		public String toString() {
			return "((\"(\" expression ((\"|\" expression) (\"|\" expression)*) \")\")) = (\"(\" expression ((\"|\" expression) (\"|\" expression)*) \")\")";
		}

	};

	/** ("+") = "+" */
	private final Rule rule29 = new Rule() {

		@Override
		public SymbolClass getLeftHandSide() {
			return symbolClass12;
		}

		@Override
		public SymbolClass getRightHandSide() {
			return symbolClass88;
		}

		@Override
		protected Collection<? extends State> computeStartStates() {
			return ImmutableSet.<State>builder().add(state14).add(state68).add(state73).add(state87).add(state88).build();
		}

		@Override
		public List<? extends Symbol<?>> reduce(List<? extends Symbol<?>> rightHandSymbols) {
			return ImmutableList.<Symbol<?>>builder().add(Symbol.create(symbolClass88, rightHandSymbols)).build();
		}

		@Override
		public String toString() {
			return "(\"+\") = \"+\"";
		}

	};

	/** token_section = ("Tokens" rule*) */
	private final Rule rule28 = new Rule() {

		@Override
		public SymbolClass getLeftHandSide() {
			return symbolClass86;
		}

		@Override
		public SymbolClass getRightHandSide() {
			return symbolClass96;
		}

		@Override
		protected Collection<? extends State> computeStartStates() {
			return ImmutableSet.<State>builder().add(state11).build();
		}

		@Override
		public List<? extends Symbol<?>> reduce(List<? extends Symbol<?>> rightHandSymbols) {
			return ImmutableList.<Symbol<?>>builder().add(Symbol.create(symbolClass86, rightHandSymbols)).build();
		}

		@Override
		public String toString() {
			return "token_section = (\"Tokens\" rule*)";
		}

	};

	/** (production_section?) = production_section? */
	private final Rule rule27 = new Rule() {

		@Override
		public SymbolClass getLeftHandSide() {
			return symbolClass65;
		}

		@Override
		public SymbolClass getRightHandSide() {
			return symbolClass11;
		}

		@Override
		protected Collection<? extends State> computeStartStates() {
			return ImmutableSet.<State>builder().add(state35).build();
		}

		@Override
		public List<? extends Symbol<?>> reduce(List<? extends Symbol<?>> rightHandSymbols) {
			return ImmutableList.<Symbol<?>>builder().add(Symbol.create(symbolClass11, rightHandSymbols)).build();
		}

		@Override
		public String toString() {
			return "(production_section?) = production_section?";
		}

	};

	/** ("?") = "?" */
	private final Rule rule31 = new Rule() {

		@Override
		public SymbolClass getLeftHandSide() {
			return symbolClass9;
		}

		@Override
		public SymbolClass getRightHandSide() {
			return symbolClass74;
		}

		@Override
		protected Collection<? extends State> computeStartStates() {
			return ImmutableSet.<State>builder().add(state14).add(state68).add(state73).add(state87).add(state88).build();
		}

		@Override
		public List<? extends Symbol<?>> reduce(List<? extends Symbol<?>> rightHandSymbols) {
			return ImmutableList.<Symbol<?>>builder().add(Symbol.create(symbolClass74, rightHandSymbols)).build();
		}

		@Override
		public String toString() {
			return "(\"?\") = \"?\"";
		}

	};

	/** ("\r\n") = "\r\n" */
	private final Rule rule30 = new Rule() {

		@Override
		public SymbolClass getLeftHandSide() {
			return symbolClass90;
		}

		@Override
		public SymbolClass getRightHandSide() {
			return symbolClass98;
		}

		@Override
		protected Collection<? extends State> computeStartStates() {
			return ImmutableSet.<State>builder().add(state1).add(state2).add(state4).add(state5).add(state10).add(state11).add(state14).add(state16).add(state19).add(state22).add(state23).add(state25).add(state26).add(state27).add(state28).add(state29).add(state30).add(state32).add(state33).add(state34).add(state35).add(state39).add(state40).add(state44).add(state49).add(state50).add(state51).add(state52).add(state55).add(state57).add(state58).add(state60).add(state63).add(state64).add(state65).add(state66).add(state67).add(state68).add(state70).add(state73).add(state74).add(state75).add(state76).add(state81).add(state82).add(state83).add(state86).add(state87).add(state88).add(state89).add(state92).add(state93).add(state94).build();
		}

		@Override
		public List<? extends Symbol<?>> reduce(List<? extends Symbol<?>> rightHandSymbols) {
			return ImmutableList.<Symbol<?>>builder().add(Symbol.create(symbolClass98, rightHandSymbols)).build();
		}

		@Override
		public String toString() {
			return "(\"\\r\\n\") = \"\\r\\n\"";
		}

	};

	/** ("\t") = "\t" */
	private final Rule rule32 = new Rule() {

		@Override
		public SymbolClass getLeftHandSide() {
			return symbolClass73;
		}

		@Override
		public SymbolClass getRightHandSide() {
			return symbolClass4;
		}

		@Override
		protected Collection<? extends State> computeStartStates() {
			return ImmutableSet.<State>builder().add(state1).add(state2).add(state4).add(state5).add(state10).add(state11).add(state14).add(state16).add(state19).add(state22).add(state23).add(state25).add(state26).add(state27).add(state28).add(state29).add(state30).add(state32).add(state33).add(state34).add(state35).add(state39).add(state40).add(state44).add(state49).add(state50).add(state51).add(state52).add(state55).add(state57).add(state58).add(state60).add(state63).add(state64).add(state65).add(state66).add(state67).add(state68).add(state70).add(state73).add(state74).add(state75).add(state76).add(state81).add(state82).add(state83).add(state86).add(state87).add(state88).add(state89).add(state92).add(state93).add(state94).build();
		}

		@Override
		public List<? extends Symbol<?>> reduce(List<? extends Symbol<?>> rightHandSymbols) {
			return ImmutableList.<Symbol<?>>builder().add(Symbol.create(symbolClass4, rightHandSymbols)).build();
		}

		@Override
		public String toString() {
			return "(\"\\t\") = \"\\t\"";
		}

	};

	/** (("(" literal ".." literal ")")) = ("(" literal ".." literal ")") */
	private final Rule rule33 = new Rule() {

		@Override
		public SymbolClass getLeftHandSide() {
			return symbolClass115;
		}

		@Override
		public SymbolClass getRightHandSide() {
			return symbolClass83;
		}

		@Override
		protected Collection<? extends State> computeStartStates() {
			return ImmutableSet.<State>builder().add(state14).add(state40).add(state67).add(state74).add(state81).add(state82).add(state86).add(state87).build();
		}

		@Override
		public List<? extends Symbol<?>> reduce(List<? extends Symbol<?>> rightHandSymbols) {
			return ImmutableList.<Symbol<?>>builder().add(Symbol.create(symbolClass83, rightHandSymbols)).build();
		}

		@Override
		public String toString() {
			return "((\"(\" literal \"..\" literal \")\")) = (\"(\" literal \"..\" literal \")\")";
		}

	};

	/** (("|" expression)) = ("|" expression) */
	private final Rule rule34 = new Rule() {

		@Override
		public SymbolClass getLeftHandSide() {
			return symbolClass70;
		}

		@Override
		public SymbolClass getRightHandSide() {
			return symbolClass53;
		}

		@Override
		protected Collection<? extends State> computeStartStates() {
			return ImmutableSet.<State>builder().add(state5).add(state14).add(state16).build();
		}

		@Override
		public List<? extends Symbol<?>> reduce(List<? extends Symbol<?>> rightHandSymbols) {
			return ImmutableList.<Symbol<?>>builder().add(Symbol.create(symbolClass53, rightHandSymbols)).build();
		}

		@Override
		public String toString() {
			return "((\"|\" expression)) = (\"|\" expression)";
		}

	};

	/** expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")")) */
	private final Rule rule35 = new Rule() {

		@Override
		public SymbolClass getLeftHandSide() {
			return symbolClass1;
		}

		@Override
		public SymbolClass getRightHandSide() {
			return symbolClass76;
		}

		@Override
		protected Collection<? extends State> computeStartStates() {
			return ImmutableSet.<State>builder().add(state14).add(state40).add(state67).add(state74).add(state81).add(state82).add(state86).add(state87).build();
		}

		@Override
		public List<? extends Symbol<?>> reduce(List<? extends Symbol<?>> rightHandSymbols) {
			return ImmutableList.<Symbol<?>>builder().add(Symbol.create(symbolClass1, rightHandSymbols)).build();
		}

		@Override
		public String toString() {
			return "expression = (identifier | (\"(\" expression* \")\") | (\"(\" expression ((\"|\" expression) (\"|\" expression)*) \")\") | (expression \"?\") | (expression \"*\") | (expression \"+\") | (\"(\" literal \"..\" literal \")\"))";
		}

	};

	/** ("_") = "_" */
	private final Rule rule36 = new Rule() {

		@Override
		public SymbolClass getLeftHandSide() {
			return symbolClass49;
		}

		@Override
		public SymbolClass getRightHandSide() {
			return symbolClass104;
		}

		@Override
		protected Collection<? extends State> computeStartStates() {
			return ImmutableSet.<State>builder().add(state14).add(state30).add(state40).add(state44).add(state67).add(state74).add(state81).add(state82).add(state86).add(state87).build();
		}

		@Override
		public List<? extends Symbol<?>> reduce(List<? extends Symbol<?>> rightHandSymbols) {
			return ImmutableList.<Symbol<?>>builder().add(Symbol.create(symbolClass104, rightHandSymbols)).build();
		}

		@Override
		public String toString() {
			return "(\"_\") = \"_\"";
		}

	};

	/** ("..") = ".." */
	private final Rule rule37 = new Rule() {

		@Override
		public SymbolClass getLeftHandSide() {
			return symbolClass128;
		}

		@Override
		public SymbolClass getRightHandSide() {
			return symbolClass134;
		}

		@Override
		protected Collection<? extends State> computeStartStates() {
			return ImmutableSet.<State>builder().add(state22).build();
		}

		@Override
		public List<? extends Symbol<?>> reduce(List<? extends Symbol<?>> rightHandSymbols) {
			return ImmutableList.<Symbol<?>>builder().add(Symbol.create(symbolClass134, rightHandSymbols)).build();
		}

		@Override
		public String toString() {
			return "(\"..\") = \"..\"";
		}

	};

	/** (")") = ")" */
	private final Rule rule38 = new Rule() {

		@Override
		public SymbolClass getLeftHandSide() {
			return symbolClass32;
		}

		@Override
		public SymbolClass getRightHandSide() {
			return symbolClass20;
		}

		@Override
		protected Collection<? extends State> computeStartStates() {
			return ImmutableSet.<State>builder().add(state10).add(state25).add(state75).build();
		}

		@Override
		public List<? extends Symbol<?>> reduce(List<? extends Symbol<?>> rightHandSymbols) {
			return ImmutableList.<Symbol<?>>builder().add(Symbol.create(symbolClass20, rightHandSymbols)).build();
		}

		@Override
		public String toString() {
			return "(\")\") = \")\"";
		}

	};

	/** (('0'..'9')) = ('0'..'9') */
	private final Rule rule39 = new Rule() {

		@Override
		public SymbolClass getLeftHandSide() {
			return symbolClass57;
		}

		@Override
		public SymbolClass getRightHandSide() {
			return symbolClass44;
		}

		@Override
		protected Collection<? extends State> computeStartStates() {
			return ImmutableSet.<State>builder().add(state57).build();
		}

		@Override
		public List<? extends Symbol<?>> reduce(List<? extends Symbol<?>> rightHandSymbols) {
			return ImmutableList.<Symbol<?>>builder().add(Symbol.create(symbolClass44, rightHandSymbols)).build();
		}

		@Override
		public String toString() {
			return "(('0'..'9')) = ('0'..'9')";
		}

	};

	/** (rule*) = rule* */
	private final Rule rule40 = new Rule() {

		@Override
		public SymbolClass getLeftHandSide() {
			return symbolClass110;
		}

		@Override
		public SymbolClass getRightHandSide() {
			return symbolClass14;
		}

		@Override
		protected Collection<? extends State> computeStartStates() {
			return ImmutableSet.<State>builder().add(state40).add(state82).build();
		}

		@Override
		public List<? extends Symbol<?>> reduce(List<? extends Symbol<?>> rightHandSymbols) {
			return ImmutableList.<Symbol<?>>builder().add(Symbol.create(symbolClass14, rightHandSymbols)).build();
		}

		@Override
		public String toString() {
			return "(rule*) = rule*";
		}

	};


	public Parser(Iterator<? extends Symbol<?>> symbolIterator) {
		super(symbolIterator);
	}

	public static void main(String... args) throws IOException {
		File file = new File(args[0]);

		Reader reader = new FileReader(file);
		try {
			BufferedReader bufferedReader = new BufferedReader(reader);
			try {
				Parser parser = new Parser(Symbols.iterator(bufferedReader));
				parser.parse();
			} finally {
				bufferedReader.close();
			}
		} finally {
			reader.close();
		}
	}

	@Override
	protected State getStartState() {
		return state83;
	}

	private abstract class State extends AbstractState {

		private ImmutableMap<SymbolClass, State> nextStates;

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.of();
		}

		protected ImmutableMap<SymbolClass, State> getNextStates() {
			if (nextStates == null) {
				nextStates = computeNextStates();
			}

			return nextStates;
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
		}

		@Override
		public void doShifts(Symbol<?> symbol) {
			State nextState = getNextStates().get(symbol.getSymbolClass());
			if (nextState != null) {
				shiftState(symbol, nextState);
			}
		}

		@Override
		public State nextState(Symbol<?> symbol) {
			State nextState = getNextStates().get(symbol.getSymbolClass());
			if (nextState != null) {
				return nextState;
			} else {
				throw new RuntimeException();
			}
		}

	}

	/**
	 * Down States:
	 *   ((expression "+").) = (expression "+")
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")")).
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   (."\t") = "\t"
	 * Up States:
	 *   ((expression "+").) = (expression "+")
	 *   expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")")).
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 */
	private final State state1 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass4, state52) // "\t"
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass40, state92) // ' '
				.build();
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule35); // expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
		}

		@Override
		public String toString() {
			return "State1";
		}

	};

	/**
	 * Down States:
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   ((('a'..'z') | "_")) = (('a'..'z') | "_").
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   (('a'..'z').) = ('a'..'z')
	 *   (."\t") = "\t"
	 * Up States:
	 *   ((('a'..'z') | "_")) = (('a'..'z') | "_").
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 */
	private final State state2 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass4, state52) // "\t"
				.put(symbolClass40, state92) // ' '
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass3, state92) // '\n'
				.build();
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule9); // ((('a'..'z') | "_")) = (('a'..'z') | "_")
		}

		@Override
		public String toString() {
			return "State2";
		}

	};

	/**
	 * Down States:
	 *   ("Productions") = "Produ.ctions"
	 */
	private final State state3 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass126, state71) // 'c'
				.build();
		}

		@Override
		public String toString() {
			return "State3";
		}

	};

	/**
	 * Down States:
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   production_section. = ("Productions" rule*)
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (."\r\n") = "\r\n"
	 *   (production_section?) = production_section?.
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   (."\t") = "\t"
	 * Up States:
	 *   production_section. = ("Productions" rule*)
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (production_section?) = production_section?.
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 */
	private final State state4 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass40, state92) // ' '
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass4, state52) // "\t"
				.build();
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule27); // (production_section?) = production_section?
		}

		@Override
		public String toString() {
			return "State4";
		}

	};

	/**
	 * Down States:
	 *   (.("|" expression)) = ("|" expression)
	 *   (("|" expression).) = ("|" expression)
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   ("|") = ".|"
	 *   (("|" expression)*) = .("|" expression)*
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   ((("|" expression) ("|" expression)*)) = (("|" expression).("|" expression)*)
	 *   (("|" expression)*) = ("|" expression)*.
	 *   (.("|" expression)*) = ("|" expression)*
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (."|") = "|"
	 *   (."\t") = "\t"
	 *   (("|" expression)) = (."|" expression)
	 * Up States:
	 *   (.("|" expression)) = ("|" expression)
	 *   (("|" expression).) = ("|" expression)
	 *   (.(("|" expression) ("|" expression)*)) = (("|" expression) ("|" expression)*)
	 *   ((("|" expression) ("|" expression)*)) = (("|" expression).("|" expression)*)
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   ((("|" expression) ("|" expression)*)) = (.("|" expression) ("|" expression)*)
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   (("|" expression)) = (."|" expression)
	 */
	private final State state5 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass54, state67) // "|"
				.put(symbolClass40, state92) // ' '
				.put(symbolClass4, state52) // "\t"
				.put(symbolClass19, state18) // (("|" expression) ("|" expression)*)
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass63, state90) // '|'
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass67, state28) // ("|" expression)*
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass53, state16) // ("|" expression)
				.put(symbolClass2, state61) // '\t'
				.build();
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule15); // (("|" expression)*) = ("|" expression)*
		}

		@Override
		public String toString() {
			return "State5";
		}

	};

	/**
	 * Up States:
	 *   expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")")).
	 *   ((expression "*").) = (expression "*")
	 */
	private final State state6 = new State() {

		@Override
		public String toString() {
			return "State6";
		}

	};

	/**
	 * Down States:
	 *   (('a'..'z')) = ('a'..'z').
	 */
	private final State state7 = new State() {

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule3); // (('a'..'z')) = ('a'..'z')
		}

		@Override
		public String toString() {
			return "State7";
		}

	};

	/**
	 * Down States:
	 *   ("?") = "?."
	 */
	private final State state8 = new State() {

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule31); // ("?") = "?"
		}

		@Override
		public String toString() {
			return "State8";
		}

	};

	/**
	 * Down States:
	 *   ("Productions") = "P.roductions"
	 */
	private final State state9 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass109, state77) // 'r'
				.build();
		}

		@Override
		public String toString() {
			return "State9";
		}

	};

	/**
	 * Down States:
	 *   literal. = ("\"" ('0'..'9') "\"")
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   (.")") = ")"
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (")") = ".)"
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   (("(" literal ".." literal ")")) = ("(" literal ".." literal.")")
	 *   (."\t") = "\t"
	 * Up States:
	 *   literal. = ("\"" ('0'..'9') "\"")
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   (("(" literal ".." literal ")")) = ("(" literal ".." literal.")")
	 */
	private final State state10 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass17, state21) // ')'
				.put(symbolClass20, state51) // ")"
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass40, state92) // ' '
				.put(symbolClass4, state52) // "\t"
				.build();
		}

		@Override
		public String toString() {
			return "State10";
		}

	};

	/**
	 * Down States:
	 *   (.token_section?) = token_section?
	 *   token_section = (."Tokens" rule*)
	 *   .grammar = (token_section? production_section?)
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   start = (^.grammar $)
	 *   (."Tokens") = "Tokens"
	 *   .token_section = ("Tokens" rule*)
	 *   (token_section?) = .token_section?
	 *   (token_section?) = token_section?.
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   ("Tokens") = ".Tokens"
	 *   grammar = (.token_section? production_section?)
	 *   (."\t") = "\t"
	 * Up States:
	 *   start = (^.grammar $)
	 *   .token_section = ("Tokens" rule*)
	 *   (token_section?) = token_section?.
	 *   (token_section?) = .token_section?
	 *   (.token_section?) = token_section?
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   token_section = (."Tokens" rule*)
	 *   .grammar = (token_section? production_section?)
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   grammar = (.token_section? production_section?)
	 */
	private final State state11 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass117, state50) // grammar
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass78, state17) // 'T'
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass38, state35) // token_section?
				.put(symbolClass86, state23) // token_section
				.put(symbolClass4, state52) // "\t"
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass48, state40) // "Tokens"
				.put(symbolClass40, state92) // ' '
				.build();
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule1); // (token_section?) = token_section?
		}

		@Override
		public String toString() {
			return "State11";
		}

	};

	/**
	 * Down States:
	 *   ("Productions") = "Productio.ns"
	 */
	private final State state12 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass102, state79) // 'n'
				.build();
		}

		@Override
		public String toString() {
			return "State12";
		}

	};

	/**
	 * Down States:
	 *   ("Tokens") = "Token.s"
	 */
	private final State state13 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass106, state80) // 's'
				.build();
		}

		@Override
		public String toString() {
			return "State13";
		}

	};

	/**
	 * Down States:
	 *   ((expression "+")) = (expression."+")
	 *   (.(expression "?")) = (expression "?")
	 *   ((expression "+")) = (.expression "+")
	 *   (.(expression "+")) = (expression "+")
	 *   (("(" literal ".." literal ")")) = (."(" literal ".." literal ")")
	 *   ((expression "*")) = (expression."*")
	 *   (("(" expression (("|" expression) ("|" expression)*) ")")) = ("(" expression.(("|" expression) ("|" expression)*) ")")
	 *   (.(expression "*")) = (expression "*")
	 *   ((expression "*")) = (.expression "*")
	 *   ("+") = ".+"
	 *   (("(" expression (("|" expression) ("|" expression)*) ")")) = (."(" expression (("|" expression) ("|" expression)*) ")")
	 *   (.('a'..'z')) = ('a'..'z')
	 *   ("?") = ".?"
	 *   (expression*) = expression*.
	 *   (('a'..'z')) = .('a'..'z')
	 *   ("\t") = ".\t"
	 *   expression = .(identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   ("\r\n") = ".\r\n"
	 *   identifier = (.(('a'..'z') | "_") (('a'..'z') | "_")*)
	 *   (.(("|" expression) ("|" expression)*)) = (("|" expression) ("|" expression)*)
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (.("(" expression (("|" expression) ("|" expression)*) ")")) = ("(" expression (("|" expression) ("|" expression)*) ")")
	 *   ((("|" expression) ("|" expression)*)) = (.("|" expression) ("|" expression)*)
	 *   (."|") = "|"
	 *   (."+") = "+"
	 *   (."?") = "?"
	 *   (("|" expression)) = (."|" expression)
	 *   ((('a'..'z') | "_")) = .(('a'..'z') | "_")
	 *   (.("|" expression)) = ("|" expression)
	 *   ((expression "?")) = (.expression "?")
	 *   (."_") = "_"
	 *   ("(") = ".("
	 *   (("(" expression* ")")) = (."(" expression* ")")
	 *   (.("(" expression* ")")) = ("(" expression* ")")
	 *   ((expression "?")) = (expression."?")
	 *   .identifier = ((('a'..'z') | "_") (('a'..'z') | "_")*)
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   ("|") = ".|"
	 *   expression. = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   (."*") = "*"
	 *   .expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   ("*") = ".*"
	 *   ("_") = "._"
	 *   (."(") = "("
	 *   (.(('a'..'z') | "_")) = (('a'..'z') | "_")
	 *   (.("(" literal ".." literal ")")) = ("(" literal ".." literal ")")
	 *   (."\t") = "\t"
	 * Up States:
	 *   ((expression "+")) = (expression."+")
	 *   (.(expression "?")) = (expression "?")
	 *   (.(expression "+")) = (expression "+")
	 *   ((expression "+")) = (.expression "+")
	 *   (("(" literal ".." literal ")")) = (."(" literal ".." literal ")")
	 *   ((expression "*")) = (expression."*")
	 *   (.(expression "*")) = (expression "*")
	 *   ((expression "*")) = (.expression "*")
	 *   (("(" expression (("|" expression) ("|" expression)*) ")")) = ("(" expression.(("|" expression) ("|" expression)*) ")")
	 *   (("(" expression (("|" expression) ("|" expression)*) ")")) = (."(" expression (("|" expression) ("|" expression)*) ")")
	 *   rule = (.expression "=" expression)
	 *   rule = (expression."=" expression)
	 *   expression = .(identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   identifier = (.(('a'..'z') | "_") (('a'..'z') | "_")*)
	 *   (.(("|" expression) ("|" expression)*)) = (("|" expression) ("|" expression)*)
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (.("(" expression (("|" expression) ("|" expression)*) ")")) = ("(" expression (("|" expression) ("|" expression)*) ")")
	 *   ((("|" expression) ("|" expression)*)) = (.("|" expression) ("|" expression)*)
	 *   (("|" expression)) = (."|" expression)
	 *   ((('a'..'z') | "_")) = .(('a'..'z') | "_")
	 *   (.("|" expression)) = ("|" expression)
	 *   ((expression "?")) = (.expression "?")
	 *   .identifier = ((('a'..'z') | "_") (('a'..'z') | "_")*)
	 *   ((expression "?")) = (expression."?")
	 *   (("(" expression* ")")) = (."(" expression* ")")
	 *   (.("(" expression* ")")) = ("(" expression* ")")
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   expression. = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   .expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   .rule = (expression "=" expression)
	 *   (.(('a'..'z') | "_")) = (('a'..'z') | "_")
	 *   (.("(" literal ".." literal ")")) = ("(" literal ".." literal ")")
	 */
	private final State state14 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass106, state7) // 's'
				.put(symbolClass40, state92) // ' '
				.put(symbolClass80, state76) // ("(" expression* ")")
				.put(symbolClass68, state7) // 'w'
				.put(symbolClass114, state7) // 'g'
				.put(symbolClass126, state7) // 'c'
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass119, state7) // 'l'
				.put(symbolClass23, state81) // "("
				.put(symbolClass4, state52) // "\t"
				.put(symbolClass66, state7) // 'v'
				.put(symbolClass100, state32) // (expression "?")
				.put(symbolClass85, state8) // '?'
				.put(symbolClass109, state7) // 'r'
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass113, state7) // 'h'
				.put(symbolClass129, state7) // 'd'
				.put(symbolClass46, state63) // identifier
				.put(symbolClass62, state7) // 'z'
				.put(symbolClass103, state7) // 'm'
				.put(symbolClass1, state87) // expression
				.put(symbolClass21, state66) // "*"
				.put(symbolClass124, state38) // '_'
				.put(symbolClass53, state5) // ("|" expression)
				.put(symbolClass123, state7) // 'i'
				.put(symbolClass111, state7) // 'q'
				.put(symbolClass18, state95) // '*'
				.put(symbolClass64, state7) // 'u'
				.put(symbolClass131, state7) // 'a'
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass61, state7) // 'y'
				.put(symbolClass74, state26) // "?"
				.put(symbolClass118, state7) // 'e'
				.put(symbolClass88, state55) // "+"
				.put(symbolClass121, state84) // rule
				.put(symbolClass89, state2) // ('a'..'z')
				.put(symbolClass104, state27) // "_"
				.put(symbolClass102, state7) // 'n'
				.put(symbolClass22, state43) // '('
				.put(symbolClass122, state7) // 'j'
				.put(symbolClass54, state67) // "|"
				.put(symbolClass99, state7) // 'p'
				.put(symbolClass13, state54) // '+'
				.put(symbolClass42, state44) // (('a'..'z') | "_")
				.put(symbolClass63, state90) // '|'
				.put(symbolClass133, state29) // (expression "*")
				.put(symbolClass83, state65) // ("(" literal ".." literal ")")
				.put(symbolClass19, state25) // (("|" expression) ("|" expression)*)
				.put(symbolClass91, state93) // ("(" expression (("|" expression) ("|" expression)*) ")")
				.put(symbolClass105, state7) // 't'
				.put(symbolClass69, state7) // 'x'
				.put(symbolClass132, state7) // 'b'
				.put(symbolClass116, state7) // 'f'
				.put(symbolClass120, state7) // 'k'
				.put(symbolClass101, state7) // 'o'
				.put(symbolClass130, state1) // (expression "+")
				.put(symbolClass98, state70) // "\r\n"
				.build();
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule26); // (expression*) = expression*
		}

		@Override
		public String toString() {
			return "State14";
		}

	};

	/**
	 * Down States:
	 *   ("\"") = ""."
	 */
	private final State state15 = new State() {

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule10); // ("\"") = "\""
		}

		@Override
		public String toString() {
			return "State15";
		}

	};

	/**
	 * Down States:
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   (.("|" expression)) = ("|" expression)
	 *   (("|" expression).) = ("|" expression)
	 *   (("|" expression)*) = ("|" expression)*.
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (."\r\n") = "\r\n"
	 *   (."|") = "|"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   ("|") = ".|"
	 *   (."\t") = "\t"
	 *   (("|" expression)) = (."|" expression)
	 * Up States:
	 *   (.("|" expression)) = ("|" expression)
	 *   (("|" expression).) = ("|" expression)
	 *   (.(("|" expression) ("|" expression)*)) = (("|" expression) ("|" expression)*)
	 *   ((("|" expression) ("|" expression)*)) = (("|" expression).("|" expression)*)
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   ((("|" expression) ("|" expression)*)) = (.("|" expression) ("|" expression)*)
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   (("|" expression)) = (."|" expression)
	 */
	private final State state16 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass19, state18) // (("|" expression) ("|" expression)*)
				.put(symbolClass63, state90) // '|'
				.put(symbolClass54, state67) // "|"
				.put(symbolClass4, state52) // "\t"
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass53, state16) // ("|" expression)
				.put(symbolClass40, state92) // ' '
				.put(symbolClass6, state45) // '\r'
				.build();
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule15); // (("|" expression)*) = ("|" expression)*
		}

		@Override
		public String toString() {
			return "State16";
		}

	};

	/**
	 * Down States:
	 *   ("Tokens") = "T.okens"
	 */
	private final State state17 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass101, state91) // 'o'
				.build();
		}

		@Override
		public String toString() {
			return "State17";
		}

	};

	/**
	 * Up States:
	 *   ((("|" expression) ("|" expression)*).) = (("|" expression) ("|" expression)*)
	 */
	private final State state18 = new State() {

		@Override
		public String toString() {
			return "State18";
		}

	};

	/**
	 * Down States:
	 *   production_section = ("Productions" rule*.)
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (rule*.) = rule*
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   (."\t") = "\t"
	 * Up States:
	 *   production_section = ("Productions" rule*.)
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 */
	private final State state19 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass40, state92) // ' '
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass4, state52) // "\t"
				.build();
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule19); // production_section = ("Productions" rule*)
		}

		@Override
		public String toString() {
			return "State19";
		}

	};

	/**
	 * Down States:
	 *   ("..") = "..."
	 */
	private final State state20 = new State() {

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule37); // ("..") = ".."
		}

		@Override
		public String toString() {
			return "State20";
		}

	};

	/**
	 * Down States:
	 *   (")") = ")."
	 */
	private final State state21 = new State() {

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule38); // (")") = ")"
		}

		@Override
		public String toString() {
			return "State21";
		}

	};

	/**
	 * Down States:
	 *   ("..") = "..."
	 *   literal. = ("\"" ('0'..'9') "\"")
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   (("(" literal ".." literal ")")) = ("(" literal.".." literal ")")
	 *   (."..") = ".."
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   (."\t") = "\t"
	 * Up States:
	 *   literal. = ("\"" ('0'..'9') "\"")
	 *   (("(" literal ".." literal ")")) = ("(" literal.".." literal ")")
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 */
	private final State state22 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass4, state52) // "\t"
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass40, state92) // ' '
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass34, state85) // '.'
				.put(symbolClass134, state34) // ".."
				.put(symbolClass2, state61) // '\t'
				.build();
		}

		@Override
		public String toString() {
			return "State22";
		}

	};

	/**
	 * Down States:
	 *   (token_section?) = token_section?.
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   (."\t") = "\t"
	 *   token_section. = ("Tokens" rule*)
	 * Up States:
	 *   (token_section?) = token_section?.
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   token_section. = ("Tokens" rule*)
	 */
	private final State state23 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass4, state52) // "\t"
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass40, state92) // ' '
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass3, state92) // '\n'
				.build();
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule1); // (token_section?) = token_section?
		}

		@Override
		public String toString() {
			return "State23";
		}

	};

	/**
	 * Down States:
	 *   ("Productions") = "Prod.uctions"
	 */
	private final State state24 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass64, state3) // 'u'
				.build();
		}

		@Override
		public String toString() {
			return "State24";
		}

	};

	/**
	 * Down States:
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   (.")") = ")"
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (("(" expression (("|" expression) ("|" expression)*) ")")) = ("(" expression (("|" expression) ("|" expression)*).")")
	 *   (")") = ".)"
	 *   ((("|" expression) ("|" expression)*).) = (("|" expression) ("|" expression)*)
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   (."\t") = "\t"
	 * Up States:
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (("(" expression (("|" expression) ("|" expression)*) ")")) = ("(" expression (("|" expression) ("|" expression)*).")")
	 *   ((("|" expression) ("|" expression)*).) = (("|" expression) ("|" expression)*)
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 */
	private final State state25 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass20, state49) // ")"
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass17, state21) // ')'
				.put(symbolClass40, state92) // ' '
				.put(symbolClass4, state52) // "\t"
				.build();
		}

		@Override
		public String toString() {
			return "State25";
		}

	};

	/**
	 * Down States:
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   ((expression "?")) = (expression "?".)
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   ("?".) = "?"
	 *   (."\t") = "\t"
	 * Up States:
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   ((expression "?")) = (expression "?".)
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 */
	private final State state26 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass40, state92) // ' '
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass4, state52) // "\t"
				.build();
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule18); // ((expression "?")) = (expression "?")
		}

		@Override
		public String toString() {
			return "State26";
		}

	};

	/**
	 * Down States:
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   ((('a'..'z') | "_")) = (('a'..'z') | "_").
	 *   ("_".) = "_"
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   (."\t") = "\t"
	 * Up States:
	 *   ((('a'..'z') | "_")) = (('a'..'z') | "_").
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 */
	private final State state27 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass40, state92) // ' '
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass4, state52) // "\t"
				.build();
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule9); // ((('a'..'z') | "_")) = (('a'..'z') | "_")
		}

		@Override
		public String toString() {
			return "State27";
		}

	};

	/**
	 * Down States:
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   (("|" expression)*.) = ("|" expression)*
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   ((("|" expression) ("|" expression)*)) = (("|" expression) ("|" expression)*.)
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   (."\t") = "\t"
	 * Up States:
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   ((("|" expression) ("|" expression)*)) = (("|" expression) ("|" expression)*.)
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 */
	private final State state28 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass40, state92) // ' '
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass4, state52) // "\t"
				.build();
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule14); // ((("|" expression) ("|" expression)*)) = (("|" expression) ("|" expression)*)
		}

		@Override
		public String toString() {
			return "State28";
		}

	};

	/**
	 * Down States:
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")")).
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   ((expression "*").) = (expression "*")
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   (."\t") = "\t"
	 * Up States:
	 *   expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")")).
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   ((expression "*").) = (expression "*")
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 */
	private final State state29 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass40, state92) // ' '
				.put(symbolClass4, state52) // "\t"
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass2, state61) // '\t'
				.build();
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule35); // expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
		}

		@Override
		public String toString() {
			return "State29";
		}

	};

	/**
	 * Down States:
	 *   ((('a'..'z') | "_")) = .(('a'..'z') | "_")
	 *   ((('a'..'z') | "_")*) = (('a'..'z') | "_")*.
	 *   (."_") = "_"
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   (.('a'..'z')) = ('a'..'z')
	 *   (('a'..'z')) = .('a'..'z')
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   ("_") = "._"
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (.(('a'..'z') | "_")) = (('a'..'z') | "_")
	 *   ((('a'..'z') | "_").) = (('a'..'z') | "_")
	 *   (."\t") = "\t"
	 * Up States:
	 *   (.(expression "?")) = (expression "?")
	 *   ((('a'..'z') | "_")) = .(('a'..'z') | "_")
	 *   ((expression "+")) = (.expression "+")
	 *   (.(expression "+")) = (expression "+")
	 *   ((expression "?")) = (.expression "?")
	 *   .identifier = ((('a'..'z') | "_") (('a'..'z') | "_")*)
	 *   (.(expression "*")) = (expression "*")
	 *   ((expression "*")) = (.expression "*")
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   rule = (.expression "=" expression)
	 *   .expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   expression = .(identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   identifier = (.(('a'..'z') | "_") (('a'..'z') | "_")*)
	 *   identifier = ((('a'..'z') | "_").(('a'..'z') | "_")*)
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   .rule = (expression "=" expression)
	 *   (.(('a'..'z') | "_")) = (('a'..'z') | "_")
	 *   ((('a'..'z') | "_").) = (('a'..'z') | "_")
	 */
	private final State state30 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass61, state7) // 'y'
				.put(symbolClass64, state7) // 'u'
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass42, state30) // (('a'..'z') | "_")
				.put(symbolClass100, state36) // (expression "?")
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass102, state7) // 'n'
				.put(symbolClass1, state78) // expression
				.put(symbolClass131, state7) // 'a'
				.put(symbolClass119, state7) // 'l'
				.put(symbolClass89, state2) // ('a'..'z')
				.put(symbolClass126, state7) // 'c'
				.put(symbolClass68, state7) // 'w'
				.put(symbolClass118, state7) // 'e'
				.put(symbolClass130, state46) // (expression "+")
				.put(symbolClass120, state7) // 'k'
				.put(symbolClass101, state7) // 'o'
				.put(symbolClass123, state7) // 'i'
				.put(symbolClass114, state7) // 'g'
				.put(symbolClass106, state7) // 's'
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass111, state7) // 'q'
				.put(symbolClass62, state7) // 'z'
				.put(symbolClass66, state7) // 'v'
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass132, state7) // 'b'
				.put(symbolClass69, state7) // 'x'
				.put(symbolClass103, state7) // 'm'
				.put(symbolClass122, state7) // 'j'
				.put(symbolClass124, state38) // '_'
				.put(symbolClass129, state7) // 'd'
				.put(symbolClass46, state31) // identifier
				.put(symbolClass116, state7) // 'f'
				.put(symbolClass113, state7) // 'h'
				.put(symbolClass99, state7) // 'p'
				.put(symbolClass4, state52) // "\t"
				.put(symbolClass104, state27) // "_"
				.put(symbolClass109, state7) // 'r'
				.put(symbolClass133, state6) // (expression "*")
				.put(symbolClass121, state84) // rule
				.put(symbolClass105, state7) // 't'
				.put(symbolClass40, state92) // ' '
				.build();
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule22); // ((('a'..'z') | "_")*) = (('a'..'z') | "_")*
		}

		@Override
		public String toString() {
			return "State30";
		}

	};

	/**
	 * Up States:
	 *   expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")")).
	 *   identifier. = ((('a'..'z') | "_") (('a'..'z') | "_")*)
	 */
	private final State state31 = new State() {

		@Override
		public String toString() {
			return "State31";
		}

	};

	/**
	 * Down States:
	 *   ((expression "?").) = (expression "?")
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")")).
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   (."\t") = "\t"
	 * Up States:
	 *   ((expression "?").) = (expression "?")
	 *   expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")")).
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 */
	private final State state32 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass40, state92) // ' '
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass4, state52) // "\t"
				.build();
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule35); // expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
		}

		@Override
		public String toString() {
			return "State32";
		}

	};

	/**
	 * Down States:
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   identifier = ((('a'..'z') | "_") (('a'..'z') | "_")*.)
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   ((('a'..'z') | "_")*.) = (('a'..'z') | "_")*
	 *   (."\t") = "\t"
	 * Up States:
	 *   identifier = ((('a'..'z') | "_") (('a'..'z') | "_")*.)
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 */
	private final State state33 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass4, state52) // "\t"
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass40, state92) // ' '
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass98, state70) // "\r\n"
				.build();
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule5); // identifier = ((('a'..'z') | "_") (('a'..'z') | "_")*)
		}

		@Override
		public String toString() {
			return "State33";
		}

	};

	/**
	 * Down States:
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   ("..".) = ".."
	 *   (."\"") = "\""
	 *   literal = (."\"" ('0'..'9') "\"")
	 *   (("(" literal ".." literal ")")) = ("(" literal "..".literal ")")
	 *   ("\"") = ".""
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   .literal = ("\"" ('0'..'9') "\"")
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   (."\t") = "\t"
	 * Up States:
	 *   literal = (."\"" ('0'..'9') "\"")
	 *   (("(" literal ".." literal ")")) = ("(" literal "..".literal ")")
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   .literal = ("\"" ('0'..'9') "\"")
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 */
	private final State state34 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass39, state15) // '"'
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass40, state92) // ' '
				.put(symbolClass31, state57) // "\""
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass10, state10) // literal
				.put(symbolClass4, state52) // "\t"
				.put(symbolClass3, state92) // '\n'
				.build();
		}

		@Override
		public String toString() {
			return "State34";
		}

	};

	/**
	 * Down States:
	 *   production_section = (."Productions" rule*)
	 *   (token_section?.) = token_section?
	 *   .production_section = ("Productions" rule*)
	 *   (."\r\n") = "\r\n"
	 *   (production_section?) = production_section?.
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   (.production_section?) = production_section?
	 *   (production_section?) = .production_section?
	 *   (."Productions") = "Productions"
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   ("Productions") = ".Productions"
	 *   grammar = (token_section?.production_section?)
	 *   (."\t") = "\t"
	 * Up States:
	 *   production_section = (."Productions" rule*)
	 *   (token_section?.) = token_section?
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   .production_section = ("Productions" rule*)
	 *   (production_section?) = production_section?.
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   grammar = (token_section?.production_section?)
	 *   (.production_section?) = production_section?
	 *   (production_section?) = .production_section?
	 */
	private final State state35 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass4, state52) // "\t"
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass40, state92) // ' '
				.put(symbolClass75, state9) // 'P'
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass47, state4) // production_section
				.put(symbolClass112, state82) // "Productions"
				.put(symbolClass11, state94) // production_section?
				.put(symbolClass2, state61) // '\t'
				.build();
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule27); // (production_section?) = production_section?
		}

		@Override
		public String toString() {
			return "State35";
		}

	};

	/**
	 * Up States:
	 *   ((expression "?").) = (expression "?")
	 *   expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")")).
	 */
	private final State state36 = new State() {

		@Override
		public String toString() {
			return "State36";
		}

	};

	/**
	 * Up States:
	 *   start. = (^ grammar $)
	 */
	private final State state37 = new State() {

		@Override
		public String toString() {
			return "State37";
		}

	};

	/**
	 * Down States:
	 *   ("_") = "_."
	 */
	private final State state38 = new State() {

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule36); // ("_") = "_"
		}

		@Override
		public String toString() {
			return "State38";
		}

	};

	/**
	 * Down States:
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   ("\"".) = "\""
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   literal = ("\"" ('0'..'9') "\"".)
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   (."\t") = "\t"
	 * Up States:
	 *   literal = ("\"".('0'..'9') "\"")
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   literal = ("\"" ('0'..'9') "\"".)
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 */
	private final State state39 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass40, state92) // ' '
				.put(symbolClass4, state52) // "\t"
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass98, state70) // "\r\n"
				.build();
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule11); // literal = ("\"" ('0'..'9') "\"")
		}

		@Override
		public String toString() {
			return "State39";
		}

	};

	/**
	 * Down States:
	 *   (.rule*) = rule*
	 *   (.(expression "?")) = (expression "?")
	 *   (.(expression "+")) = (expression "+")
	 *   ((expression "+")) = (.expression "+")
	 *   (("(" literal ".." literal ")")) = (."(" literal ".." literal ")")
	 *   (.(expression "*")) = (expression "*")
	 *   ((expression "*")) = (.expression "*")
	 *   (("(" expression (("|" expression) ("|" expression)*) ")")) = (."(" expression (("|" expression) ("|" expression)*) ")")
	 *   (.('a'..'z')) = ('a'..'z')
	 *   rule = (.expression "=" expression)
	 *   (('a'..'z')) = .('a'..'z')
	 *   ("\t") = ".\t"
	 *   expression = .(identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   ("\r\n") = ".\r\n"
	 *   identifier = (.(('a'..'z') | "_") (('a'..'z') | "_")*)
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (.("(" expression (("|" expression) ("|" expression)*) ")")) = ("(" expression (("|" expression) ("|" expression)*) ")")
	 *   ((('a'..'z') | "_")) = .(('a'..'z') | "_")
	 *   ((expression "?")) = (.expression "?")
	 *   (."_") = "_"
	 *   ("(") = ".("
	 *   (("(" expression* ")")) = (."(" expression* ")")
	 *   (.("(" expression* ")")) = ("(" expression* ")")
	 *   .identifier = ((('a'..'z') | "_") (('a'..'z') | "_")*)
	 *   token_section = ("Tokens".rule*)
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   .expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   ("Tokens".) = "Tokens"
	 *   (rule*) = rule*.
	 *   ("_") = "._"
	 *   (."(") = "("
	 *   (rule*) = .rule*
	 *   .rule = (expression "=" expression)
	 *   (.(('a'..'z') | "_")) = (('a'..'z') | "_")
	 *   (.("(" literal ".." literal ")")) = ("(" literal ".." literal ")")
	 *   (."\t") = "\t"
	 * Up States:
	 *   ((('a'..'z') | "_")) = .(('a'..'z') | "_")
	 *   (.(expression "?")) = (expression "?")
	 *   ((expression "+")) = (.expression "+")
	 *   (.(expression "+")) = (expression "+")
	 *   ((expression "?")) = (.expression "?")
	 *   .identifier = ((('a'..'z') | "_") (('a'..'z') | "_")*)
	 *   (.("(" expression* ")")) = ("(" expression* ")")
	 *   (("(" expression* ")")) = (."(" expression* ")")
	 *   (("(" literal ".." literal ")")) = (."(" literal ".." literal ")")
	 *   token_section = ("Tokens".rule*)
	 *   ((expression "*")) = (.expression "*")
	 *   (.(expression "*")) = (expression "*")
	 *   (("(" expression (("|" expression) ("|" expression)*) ")")) = (."(" expression (("|" expression) ("|" expression)*) ")")
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   rule = (.expression "=" expression)
	 *   .expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   expression = .(identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   identifier = (.(('a'..'z') | "_") (('a'..'z') | "_")*)
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (.("(" expression (("|" expression) ("|" expression)*) ")")) = ("(" expression (("|" expression) ("|" expression)*) ")")
	 *   .rule = (expression "=" expression)
	 *   (.(('a'..'z') | "_")) = (('a'..'z') | "_")
	 *   (.("(" literal ".." literal ")")) = ("(" literal ".." literal ")")
	 */
	private final State state40 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass1, state73) // expression
				.put(symbolClass126, state7) // 'c'
				.put(symbolClass133, state29) // (expression "*")
				.put(symbolClass100, state32) // (expression "?")
				.put(symbolClass62, state7) // 'z'
				.put(symbolClass109, state7) // 'r'
				.put(symbolClass66, state7) // 'v'
				.put(symbolClass114, state7) // 'g'
				.put(symbolClass120, state7) // 'k'
				.put(symbolClass89, state2) // ('a'..'z')
				.put(symbolClass23, state81) // "("
				.put(symbolClass61, state7) // 'y'
				.put(symbolClass80, state76) // ("(" expression* ")")
				.put(symbolClass129, state7) // 'd'
				.put(symbolClass111, state7) // 'q'
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass83, state65) // ("(" literal ".." literal ")")
				.put(symbolClass130, state1) // (expression "+")
				.put(symbolClass91, state93) // ("(" expression (("|" expression) ("|" expression)*) ")")
				.put(symbolClass113, state7) // 'h'
				.put(symbolClass46, state63) // identifier
				.put(symbolClass124, state38) // '_'
				.put(symbolClass64, state7) // 'u'
				.put(symbolClass119, state7) // 'l'
				.put(symbolClass118, state7) // 'e'
				.put(symbolClass69, state7) // 'x'
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass99, state7) // 'p'
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass14, state64) // rule*
				.put(symbolClass103, state7) // 'm'
				.put(symbolClass105, state7) // 't'
				.put(symbolClass123, state7) // 'i'
				.put(symbolClass68, state7) // 'w'
				.put(symbolClass116, state7) // 'f'
				.put(symbolClass132, state7) // 'b'
				.put(symbolClass40, state92) // ' '
				.put(symbolClass101, state7) // 'o'
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass122, state7) // 'j'
				.put(symbolClass104, state27) // "_"
				.put(symbolClass4, state52) // "\t"
				.put(symbolClass131, state7) // 'a'
				.put(symbolClass42, state44) // (('a'..'z') | "_")
				.put(symbolClass106, state7) // 's'
				.put(symbolClass22, state43) // '('
				.put(symbolClass102, state7) // 'n'
				.put(symbolClass121, state74) // rule
				.build();
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule40); // (rule*) = rule*
		}

		@Override
		public String toString() {
			return "State40";
		}

	};

	/**
	 * Down States:
	 *   ("Productions") = "Producti.ons"
	 */
	private final State state41 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass101, state12) // 'o'
				.build();
		}

		@Override
		public String toString() {
			return "State41";
		}

	};

	/**
	 * Down States:
	 *   ("Tokens") = "Toke.ns"
	 */
	private final State state42 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass102, state13) // 'n'
				.build();
		}

		@Override
		public String toString() {
			return "State42";
		}

	};

	/**
	 * Down States:
	 *   ("(") = "(."
	 */
	private final State state43 = new State() {

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule17); // ("(") = "("
		}

		@Override
		public String toString() {
			return "State43";
		}

	};

	/**
	 * Down States:
	 *   ((('a'..'z') | "_")) = .(('a'..'z') | "_")
	 *   ((('a'..'z') | "_")*) = (('a'..'z') | "_")*.
	 *   ((('a'..'z') | "_")*) = .(('a'..'z') | "_")*
	 *   (."_") = "_"
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   (.('a'..'z')) = ('a'..'z')
	 *   (.(('a'..'z') | "_")*) = (('a'..'z') | "_")*
	 *   (('a'..'z')) = .('a'..'z')
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   ("_") = "._"
	 *   identifier = ((('a'..'z') | "_").(('a'..'z') | "_")*)
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (.(('a'..'z') | "_")) = (('a'..'z') | "_")
	 *   ((('a'..'z') | "_").) = (('a'..'z') | "_")
	 *   (."\t") = "\t"
	 * Up States:
	 *   (.(expression "?")) = (expression "?")
	 *   ((('a'..'z') | "_")) = .(('a'..'z') | "_")
	 *   ((expression "+")) = (.expression "+")
	 *   (.(expression "+")) = (expression "+")
	 *   ((expression "?")) = (.expression "?")
	 *   .identifier = ((('a'..'z') | "_") (('a'..'z') | "_")*)
	 *   (.(expression "*")) = (expression "*")
	 *   ((expression "*")) = (.expression "*")
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   rule = (.expression "=" expression)
	 *   .expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   expression = .(identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   identifier = (.(('a'..'z') | "_") (('a'..'z') | "_")*)
	 *   identifier = ((('a'..'z') | "_").(('a'..'z') | "_")*)
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   .rule = (expression "=" expression)
	 *   (.(('a'..'z') | "_")) = (('a'..'z') | "_")
	 *   ((('a'..'z') | "_").) = (('a'..'z') | "_")
	 */
	private final State state44 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass131, state7) // 'a'
				.put(symbolClass61, state7) // 'y'
				.put(symbolClass121, state84) // rule
				.put(symbolClass104, state27) // "_"
				.put(symbolClass111, state7) // 'q'
				.put(symbolClass64, state7) // 'u'
				.put(symbolClass118, state7) // 'e'
				.put(symbolClass123, state7) // 'i'
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass40, state92) // ' '
				.put(symbolClass132, state7) // 'b'
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass69, state7) // 'x'
				.put(symbolClass4, state52) // "\t"
				.put(symbolClass99, state7) // 'p'
				.put(symbolClass130, state46) // (expression "+")
				.put(symbolClass105, state7) // 't'
				.put(symbolClass116, state7) // 'f'
				.put(symbolClass46, state31) // identifier
				.put(symbolClass122, state7) // 'j'
				.put(symbolClass89, state2) // ('a'..'z')
				.put(symbolClass119, state7) // 'l'
				.put(symbolClass126, state7) // 'c'
				.put(symbolClass42, state30) // (('a'..'z') | "_")
				.put(symbolClass68, state7) // 'w'
				.put(symbolClass101, state7) // 'o'
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass114, state7) // 'g'
				.put(symbolClass127, state33) // (('a'..'z') | "_")*
				.put(symbolClass133, state6) // (expression "*")
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass120, state7) // 'k'
				.put(symbolClass106, state7) // 's'
				.put(symbolClass100, state36) // (expression "?")
				.put(symbolClass103, state7) // 'm'
				.put(symbolClass62, state7) // 'z'
				.put(symbolClass66, state7) // 'v'
				.put(symbolClass129, state7) // 'd'
				.put(symbolClass1, state78) // expression
				.put(symbolClass102, state7) // 'n'
				.put(symbolClass113, state7) // 'h'
				.put(symbolClass124, state38) // '_'
				.put(symbolClass109, state7) // 'r'
				.build();
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule22); // ((('a'..'z') | "_")*) = (('a'..'z') | "_")*
		}

		@Override
		public String toString() {
			return "State44";
		}

	};

	/**
	 * Down States:
	 *   ("\r\n") = "\r.\n"
	 */
	private final State state45 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass3, state62) // '\n'
				.build();
		}

		@Override
		public String toString() {
			return "State45";
		}

	};

	/**
	 * Up States:
	 *   ((expression "+").) = (expression "+")
	 *   expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")")).
	 */
	private final State state46 = new State() {

		@Override
		public String toString() {
			return "State46";
		}

	};

	/**
	 * Down States:
	 *   ("Productions") = "Product.ions"
	 */
	private final State state47 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass123, state41) // 'i'
				.build();
		}

		@Override
		public String toString() {
			return "State47";
		}

	};

	/**
	 * Down States:
	 *   ("Productions") = "Pro.ductions"
	 */
	private final State state48 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass129, state24) // 'd'
				.build();
		}

		@Override
		public String toString() {
			return "State48";
		}

	};

	/**
	 * Down States:
	 *   (")".) = ")"
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   (("(" expression (("|" expression) ("|" expression)*) ")")) = ("(" expression (("|" expression) ("|" expression)*) ")".)
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   (."\t") = "\t"
	 * Up States:
	 *   (("(" expression (("|" expression) ("|" expression)*) ")")) = ("(" expression (("|" expression) ("|" expression)*) ")".)
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 */
	private final State state49 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass40, state92) // ' '
				.put(symbolClass4, state52) // "\t"
				.build();
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule25); // (("(" expression (("|" expression) ("|" expression)*) ")")) = ("(" expression (("|" expression) ("|" expression)*) ")")
		}

		@Override
		public String toString() {
			return "State49";
		}

	};

	/**
	 * Down States:
	 *   start = (^ grammar.$)
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   grammar. = (token_section? production_section?)
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   (."\t") = "\t"
	 * Up States:
	 *   start = (^ grammar.$)
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   grammar. = (token_section? production_section?)
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 */
	private final State state50 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass40, state92) // ' '
				.put(symbolClass4, state52) // "\t"
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass55, state89) // $
				.put(symbolClass3, state92) // '\n'
				.build();
		}

		@Override
		public String toString() {
			return "State50";
		}

	};

	/**
	 * Down States:
	 *   (")".) = ")"
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (."\r\n") = "\r\n"
	 *   (("(" literal ".." literal ")")) = ("(" literal ".." literal ")".)
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   (."\t") = "\t"
	 * Up States:
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (("(" literal ".." literal ")")) = ("(" literal ".." literal ")".)
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 */
	private final State state51 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass40, state92) // ' '
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass4, state52) // "\t"
				.put(symbolClass98, state70) // "\r\n"
				.build();
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule33); // (("(" literal ".." literal ")")) = ("(" literal ".." literal ")")
		}

		@Override
		public String toString() {
			return "State51";
		}

	};

	/**
	 * Down States:
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   ("\t".) = "\t"
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   () = (' ' | '\n' | "\r\n" | "\t").
	 *   (."\t") = "\t"
	 * Up States:
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   () = (' ' | '\n' | "\r\n" | "\t").
	 */
	private final State state52 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass4, state52) // "\t"
				.put(symbolClass40, state92) // ' '
				.put(symbolClass6, state45) // '\r'
				.build();
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule13); // () = (' ' | '\n' | "\r\n" | "\t")
		}

		@Override
		public String toString() {
			return "State52";
		}

	};

	/**
	 * Down States:
	 *   ("=") = "=."
	 */
	private final State state53 = new State() {

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule7); // ("=") = "="
		}

		@Override
		public String toString() {
			return "State53";
		}

	};

	/**
	 * Down States:
	 *   ("+") = "+."
	 */
	private final State state54 = new State() {

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule29); // ("+") = "+"
		}

		@Override
		public String toString() {
			return "State54";
		}

	};

	/**
	 * Down States:
	 *   ((expression "+")) = (expression "+".)
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   ("+".) = "+"
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   (."\t") = "\t"
	 * Up States:
	 *   ((expression "+")) = (expression "+".)
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 */
	private final State state55 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass40, state92) // ' '
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass4, state52) // "\t"
				.put(symbolClass3, state92) // '\n'
				.build();
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule23); // ((expression "+")) = (expression "+")
		}

		@Override
		public String toString() {
			return "State55";
		}

	};

	/**
	 * Down States:
	 *   ("Productions") = "Productions."
	 */
	private final State state56 = new State() {

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule6); // ("Productions") = "Productions"
		}

		@Override
		public String toString() {
			return "State56";
		}

	};

	/**
	 * Down States:
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   literal = ("\"".('0'..'9') "\"")
	 *   ("\"".) = "\""
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (.('0'..'9')) = ('0'..'9')
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   (('0'..'9')) = .('0'..'9')
	 *   (."\t") = "\t"
	 * Up States:
	 *   literal = ("\"".('0'..'9') "\"")
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 */
	private final State state57 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass94, state72) // '7'
				.put(symbolClass27, state72) // '1'
				.put(symbolClass93, state72) // '6'
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass95, state72) // '8'
				.put(symbolClass28, state72) // '2'
				.put(symbolClass92, state72) // '5'
				.put(symbolClass40, state92) // ' '
				.put(symbolClass24, state72) // '3'
				.put(symbolClass30, state72) // '0'
				.put(symbolClass97, state72) // '9'
				.put(symbolClass26, state72) // '4'
				.put(symbolClass4, state52) // "\t"
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass44, state58) // ('0'..'9')
				.build();
		}

		@Override
		public String toString() {
			return "State57";
		}

	};

	/**
	 * Down States:
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   (."\"") = "\""
	 *   ("\"") = ".""
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   literal = ("\"" ('0'..'9')."\"")
	 *   (('0'..'9').) = ('0'..'9')
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   (."\t") = "\t"
	 * Up States:
	 *   literal = (."\"" ('0'..'9') "\"")
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   literal = ("\"" ('0'..'9')."\"")
	 *   .literal = ("\"" ('0'..'9') "\"")
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 */
	private final State state58 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass39, state15) // '"'
				.put(symbolClass40, state92) // ' '
				.put(symbolClass31, state39) // "\""
				.put(symbolClass10, state59) // literal
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass4, state52) // "\t"
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass2, state61) // '\t'
				.build();
		}

		@Override
		public String toString() {
			return "State58";
		}

	};

	/**
	 * Up States:
	 *   literal. = ("\"" ('0'..'9') "\"")
	 */
	private final State state59 = new State() {

		@Override
		public String toString() {
			return "State59";
		}

	};

	/**
	 * Down States:
	 *   (")".) = ")"
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (."\r\n") = "\r\n"
	 *   (("(" expression* ")")) = ("(" expression* ")".)
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   (."\t") = "\t"
	 * Up States:
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (("(" expression* ")")) = ("(" expression* ")".)
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 */
	private final State state60 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass40, state92) // ' '
				.put(symbolClass4, state52) // "\t"
				.build();
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule24); // (("(" expression* ")")) = ("(" expression* ")")
		}

		@Override
		public String toString() {
			return "State60";
		}

	};

	/**
	 * Down States:
	 *   ("\t") = "\t."
	 */
	private final State state61 = new State() {

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule32); // ("\t") = "\t"
		}

		@Override
		public String toString() {
			return "State61";
		}

	};

	/**
	 * Down States:
	 *   ("\r\n") = "\r\n."
	 */
	private final State state62 = new State() {

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule30); // ("\r\n") = "\r\n"
		}

		@Override
		public String toString() {
			return "State62";
		}

	};

	/**
	 * Down States:
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")")).
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   identifier. = ((('a'..'z') | "_") (('a'..'z') | "_")*)
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   (."\t") = "\t"
	 * Up States:
	 *   expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")")).
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   identifier. = ((('a'..'z') | "_") (('a'..'z') | "_")*)
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 */
	private final State state63 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass4, state52) // "\t"
				.put(symbolClass40, state92) // ' '
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass6, state45) // '\r'
				.build();
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule35); // expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
		}

		@Override
		public String toString() {
			return "State63";
		}

	};

	/**
	 * Down States:
	 *   token_section = ("Tokens" rule*.)
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (rule*.) = rule*
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   (."\t") = "\t"
	 * Up States:
	 *   token_section = ("Tokens" rule*.)
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 */
	private final State state64 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass4, state52) // "\t"
				.put(symbolClass40, state92) // ' '
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass2, state61) // '\t'
				.build();
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule28); // token_section = ("Tokens" rule*)
		}

		@Override
		public String toString() {
			return "State64";
		}

	};

	/**
	 * Down States:
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")")).
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   (("(" literal ".." literal ")").) = ("(" literal ".." literal ")")
	 *   (."\t") = "\t"
	 * Up States:
	 *   expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")")).
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   (("(" literal ".." literal ")").) = ("(" literal ".." literal ")")
	 */
	private final State state65 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass4, state52) // "\t"
				.put(symbolClass40, state92) // ' '
				.put(symbolClass3, state92) // '\n'
				.build();
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule35); // expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
		}

		@Override
		public String toString() {
			return "State65";
		}

	};

	/**
	 * Down States:
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   ("*".) = "*"
	 *   (."\t") = "\t"
	 *   ((expression "*")) = (expression "*".)
	 * Up States:
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   ((expression "*")) = (expression "*".)
	 */
	private final State state66 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass4, state52) // "\t"
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass40, state92) // ' '
				.build();
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule12); // ((expression "*")) = (expression "*")
		}

		@Override
		public String toString() {
			return "State66";
		}

	};

	/**
	 * Down States:
	 *   (.(expression "?")) = (expression "?")
	 *   (.(expression "+")) = (expression "+")
	 *   ((expression "+")) = (.expression "+")
	 *   (("(" literal ".." literal ")")) = (."(" literal ".." literal ")")
	 *   ((expression "*")) = (.expression "*")
	 *   (.(expression "*")) = (expression "*")
	 *   (("(" expression (("|" expression) ("|" expression)*) ")")) = (."(" expression (("|" expression) ("|" expression)*) ")")
	 *   (.('a'..'z')) = ('a'..'z')
	 *   (('a'..'z')) = .('a'..'z')
	 *   expression = .(identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   ("\t") = ".\t"
	 *   identifier = (.(('a'..'z') | "_") (('a'..'z') | "_")*)
	 *   ("\r\n") = ".\r\n"
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (.("(" expression (("|" expression) ("|" expression)*) ")")) = ("(" expression (("|" expression) ("|" expression)*) ")")
	 *   ("|".) = "|"
	 *   (("|" expression)) = ("|".expression)
	 *   ((('a'..'z') | "_")) = .(('a'..'z') | "_")
	 *   ((expression "?")) = (.expression "?")
	 *   (."_") = "_"
	 *   ("(") = ".("
	 *   .identifier = ((('a'..'z') | "_") (('a'..'z') | "_")*)
	 *   (.("(" expression* ")")) = ("(" expression* ")")
	 *   (("(" expression* ")")) = (."(" expression* ")")
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   .expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   ("_") = "._"
	 *   (."(") = "("
	 *   (.(('a'..'z') | "_")) = (('a'..'z') | "_")
	 *   (.("(" literal ".." literal ")")) = ("(" literal ".." literal ")")
	 *   (."\t") = "\t"
	 * Up States:
	 *   ((('a'..'z') | "_")) = .(('a'..'z') | "_")
	 *   (.(expression "?")) = (expression "?")
	 *   ((expression "+")) = (.expression "+")
	 *   (.(expression "+")) = (expression "+")
	 *   ((expression "?")) = (.expression "?")
	 *   .identifier = ((('a'..'z') | "_") (('a'..'z') | "_")*)
	 *   (.("(" expression* ")")) = ("(" expression* ")")
	 *   (("(" expression* ")")) = (."(" expression* ")")
	 *   (("(" literal ".." literal ")")) = (."(" literal ".." literal ")")
	 *   ((expression "*")) = (.expression "*")
	 *   (.(expression "*")) = (expression "*")
	 *   (("(" expression (("|" expression) ("|" expression)*) ")")) = (."(" expression (("|" expression) ("|" expression)*) ")")
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   rule = (.expression "=" expression)
	 *   .expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   expression = .(identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   identifier = (.(('a'..'z') | "_") (('a'..'z') | "_")*)
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (.("(" expression (("|" expression) ("|" expression)*) ")")) = ("(" expression (("|" expression) ("|" expression)*) ")")
	 *   .rule = (expression "=" expression)
	 *   (.(('a'..'z') | "_")) = (('a'..'z') | "_")
	 *   (.("(" literal ".." literal ")")) = ("(" literal ".." literal ")")
	 *   (("|" expression)) = ("|".expression)
	 */
	private final State state67 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass106, state7) // 's'
				.put(symbolClass68, state7) // 'w'
				.put(symbolClass124, state38) // '_'
				.put(symbolClass130, state1) // (expression "+")
				.put(symbolClass118, state7) // 'e'
				.put(symbolClass101, state7) // 'o'
				.put(symbolClass116, state7) // 'f'
				.put(symbolClass131, state7) // 'a'
				.put(symbolClass23, state81) // "("
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass83, state65) // ("(" literal ".." literal ")")
				.put(symbolClass91, state93) // ("(" expression (("|" expression) ("|" expression)*) ")")
				.put(symbolClass122, state7) // 'j'
				.put(symbolClass109, state7) // 'r'
				.put(symbolClass66, state7) // 'v'
				.put(symbolClass62, state7) // 'z'
				.put(symbolClass102, state7) // 'n'
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass114, state7) // 'g'
				.put(symbolClass132, state7) // 'b'
				.put(symbolClass104, state27) // "_"
				.put(symbolClass120, state7) // 'k'
				.put(symbolClass80, state76) // ("(" expression* ")")
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass61, state7) // 'y'
				.put(symbolClass64, state7) // 'u'
				.put(symbolClass42, state44) // (('a'..'z') | "_")
				.put(symbolClass22, state43) // '('
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass111, state7) // 'q'
				.put(symbolClass126, state7) // 'c'
				.put(symbolClass100, state32) // (expression "?")
				.put(symbolClass121, state84) // rule
				.put(symbolClass113, state7) // 'h'
				.put(symbolClass119, state7) // 'l'
				.put(symbolClass4, state52) // "\t"
				.put(symbolClass69, state7) // 'x'
				.put(symbolClass89, state2) // ('a'..'z')
				.put(symbolClass105, state7) // 't'
				.put(symbolClass99, state7) // 'p'
				.put(symbolClass129, state7) // 'd'
				.put(symbolClass40, state92) // ' '
				.put(symbolClass123, state7) // 'i'
				.put(symbolClass133, state29) // (expression "*")
				.put(symbolClass103, state7) // 'm'
				.put(symbolClass1, state68) // expression
				.put(symbolClass46, state63) // identifier
				.build();
		}

		@Override
		public String toString() {
			return "State67";
		}

	};

	/**
	 * Down States:
	 *   ((expression "+")) = (expression."+")
	 *   ((expression "?")) = (expression."?")
	 *   ((expression "*")) = (expression."*")
	 *   (."\r\n") = "\r\n"
	 *   ("+") = ".+"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   expression. = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   ("?") = ".?"
	 *   (."*") = "*"
	 *   ("*") = ".*"
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (."+") = "+"
	 *   (("|" expression)) = ("|" expression.)
	 *   (."?") = "?"
	 *   (."\t") = "\t"
	 * Up States:
	 *   ((expression "+")) = (expression."+")
	 *   ((expression "?")) = (expression."?")
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   ((expression "*")) = (expression."*")
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   expression. = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   (("|" expression)) = ("|" expression.)
	 *   rule = (expression."=" expression)
	 */
	private final State state68 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass18, state95) // '*'
				.put(symbolClass85, state8) // '?'
				.put(symbolClass21, state66) // "*"
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass88, state55) // "+"
				.put(symbolClass40, state92) // ' '
				.put(symbolClass4, state52) // "\t"
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass13, state54) // '+'
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass74, state26) // "?"
				.build();
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule34); // (("|" expression)) = ("|" expression)
		}

		@Override
		public String toString() {
			return "State68";
		}

	};

	/**
	 * Down States:
	 *   ("Tokens") = "Tok.ens"
	 */
	private final State state69 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass118, state42) // 'e'
				.build();
		}

		@Override
		public String toString() {
			return "State69";
		}

	};

	/**
	 * Down States:
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   ("\r\n".) = "\r\n"
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   () = (' ' | '\n' | "\r\n" | "\t").
	 *   (."\t") = "\t"
	 * Up States:
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   () = (' ' | '\n' | "\r\n" | "\t").
	 */
	private final State state70 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass40, state92) // ' '
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass4, state52) // "\t"
				.build();
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule13); // () = (' ' | '\n' | "\r\n" | "\t")
		}

		@Override
		public String toString() {
			return "State70";
		}

	};

	/**
	 * Down States:
	 *   ("Productions") = "Produc.tions"
	 */
	private final State state71 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass105, state47) // 't'
				.build();
		}

		@Override
		public String toString() {
			return "State71";
		}

	};

	/**
	 * Down States:
	 *   (('0'..'9')) = ('0'..'9').
	 */
	private final State state72 = new State() {

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule39); // (('0'..'9')) = ('0'..'9')
		}

		@Override
		public String toString() {
			return "State72";
		}

	};

	/**
	 * Down States:
	 *   ((expression "+")) = (expression."+")
	 *   ((expression "?")) = (expression."?")
	 *   ((expression "*")) = (expression."*")
	 *   (."\r\n") = "\r\n"
	 *   ("+") = ".+"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   expression. = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   (."=") = "="
	 *   ("?") = ".?"
	 *   rule = (expression."=" expression)
	 *   (."*") = "*"
	 *   ("*") = ".*"
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (."+") = "+"
	 *   (."?") = "?"
	 *   (."\t") = "\t"
	 *   ("=") = ".="
	 * Up States:
	 *   ((expression "+")) = (expression."+")
	 *   ((expression "?")) = (expression."?")
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   ((expression "*")) = (expression."*")
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   expression. = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   rule = (expression."=" expression)
	 */
	private final State state73 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass18, state95) // '*'
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass85, state8) // '?'
				.put(symbolClass74, state26) // "?"
				.put(symbolClass4, state52) // "\t"
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass88, state55) // "+"
				.put(symbolClass81, state53) // '='
				.put(symbolClass21, state66) // "*"
				.put(symbolClass40, state92) // ' '
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass13, state54) // '+'
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass79, state86) // "="
				.build();
		}

		@Override
		public String toString() {
			return "State73";
		}

	};

	/**
	 * Down States:
	 *   (.(expression "?")) = (expression "?")
	 *   (.(expression "+")) = (expression "+")
	 *   ((expression "+")) = (.expression "+")
	 *   (("(" literal ".." literal ")")) = (."(" literal ".." literal ")")
	 *   (.(expression "*")) = (expression "*")
	 *   ((expression "*")) = (.expression "*")
	 *   (("(" expression (("|" expression) ("|" expression)*) ")")) = (."(" expression (("|" expression) ("|" expression)*) ")")
	 *   (.('a'..'z')) = ('a'..'z')
	 *   rule = (.expression "=" expression)
	 *   (('a'..'z')) = .('a'..'z')
	 *   expression = .(identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   identifier = (.(('a'..'z') | "_") (('a'..'z') | "_")*)
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (.("(" expression (("|" expression) ("|" expression)*) ")")) = ("(" expression (("|" expression) ("|" expression)*) ")")
	 *   ((('a'..'z') | "_")) = .(('a'..'z') | "_")
	 *   ((expression "?")) = (.expression "?")
	 *   (."_") = "_"
	 *   ("(") = ".("
	 *   (("(" expression* ")")) = (."(" expression* ")")
	 *   .identifier = ((('a'..'z') | "_") (('a'..'z') | "_")*)
	 *   (.("(" expression* ")")) = ("(" expression* ")")
	 *   rule. = (expression "=" expression)
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   .expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   (rule*) = rule*.
	 *   ("_") = "._"
	 *   (."(") = "("
	 *   .rule = (expression "=" expression)
	 *   (.(('a'..'z') | "_")) = (('a'..'z') | "_")
	 *   (.("(" literal ".." literal ")")) = ("(" literal ".." literal ")")
	 *   (."\t") = "\t"
	 * Up States:
	 *   ((('a'..'z') | "_")) = .(('a'..'z') | "_")
	 *   (.(expression "?")) = (expression "?")
	 *   ((expression "+")) = (.expression "+")
	 *   (.(expression "+")) = (expression "+")
	 *   ((expression "?")) = (.expression "?")
	 *   .identifier = ((('a'..'z') | "_") (('a'..'z') | "_")*)
	 *   (.("(" expression* ")")) = ("(" expression* ")")
	 *   (("(" expression* ")")) = (."(" expression* ")")
	 *   (("(" literal ".." literal ")")) = (."(" literal ".." literal ")")
	 *   rule. = (expression "=" expression)
	 *   ((expression "*")) = (.expression "*")
	 *   (.(expression "*")) = (expression "*")
	 *   (("(" expression (("|" expression) ("|" expression)*) ")")) = (."(" expression (("|" expression) ("|" expression)*) ")")
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   rule = (.expression "=" expression)
	 *   .expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   expression = .(identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   identifier = (.(('a'..'z') | "_") (('a'..'z') | "_")*)
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (.("(" expression (("|" expression) ("|" expression)*) ")")) = ("(" expression (("|" expression) ("|" expression)*) ")")
	 *   .rule = (expression "=" expression)
	 *   (.(('a'..'z') | "_")) = (('a'..'z') | "_")
	 *   (.("(" literal ".." literal ")")) = ("(" literal ".." literal ")")
	 */
	private final State state74 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass120, state7) // 'k'
				.put(symbolClass114, state7) // 'g'
				.put(symbolClass106, state7) // 's'
				.put(symbolClass100, state32) // (expression "?")
				.put(symbolClass68, state7) // 'w'
				.put(symbolClass102, state7) // 'n'
				.put(symbolClass126, state7) // 'c'
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass4, state52) // "\t"
				.put(symbolClass91, state93) // ("(" expression (("|" expression) ("|" expression)*) ")")
				.put(symbolClass104, state27) // "_"
				.put(symbolClass122, state7) // 'j'
				.put(symbolClass80, state76) // ("(" expression* ")")
				.put(symbolClass116, state7) // 'f'
				.put(symbolClass105, state7) // 't'
				.put(symbolClass83, state65) // ("(" literal ".." literal ")")
				.put(symbolClass69, state7) // 'x'
				.put(symbolClass130, state1) // (expression "+")
				.put(symbolClass132, state7) // 'b'
				.put(symbolClass101, state7) // 'o'
				.put(symbolClass124, state38) // '_'
				.put(symbolClass131, state7) // 'a'
				.put(symbolClass89, state2) // ('a'..'z')
				.put(symbolClass118, state7) // 'e'
				.put(symbolClass133, state29) // (expression "*")
				.put(symbolClass123, state7) // 'i'
				.put(symbolClass64, state7) // 'u'
				.put(symbolClass99, state7) // 'p'
				.put(symbolClass1, state73) // expression
				.put(symbolClass46, state63) // identifier
				.put(symbolClass119, state7) // 'l'
				.put(symbolClass61, state7) // 'y'
				.put(symbolClass129, state7) // 'd'
				.put(symbolClass113, state7) // 'h'
				.put(symbolClass22, state43) // '('
				.put(symbolClass109, state7) // 'r'
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass121, state74) // rule
				.put(symbolClass42, state44) // (('a'..'z') | "_")
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass23, state81) // "("
				.put(symbolClass62, state7) // 'z'
				.put(symbolClass66, state7) // 'v'
				.put(symbolClass40, state92) // ' '
				.put(symbolClass111, state7) // 'q'
				.put(symbolClass103, state7) // 'm'
				.put(symbolClass2, state61) // '\t'
				.build();
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule40); // (rule*) = rule*
		}

		@Override
		public String toString() {
			return "State74";
		}

	};

	/**
	 * Down States:
	 *   ("\t") = ".\t"
	 *   (expression*.) = expression*
	 *   ("\r\n") = ".\r\n"
	 *   (.")") = ")"
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (")") = ".)"
	 *   (("(" expression* ")")) = ("(" expression*.")")
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   (."\t") = "\t"
	 * Up States:
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (("(" expression* ")")) = ("(" expression*.")")
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 */
	private final State state75 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass40, state92) // ' '
				.put(symbolClass17, state21) // ')'
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass4, state52) // "\t"
				.put(symbolClass20, state60) // ")"
				.put(symbolClass6, state45) // '\r'
				.build();
		}

		@Override
		public String toString() {
			return "State75";
		}

	};

	/**
	 * Down States:
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")")).
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   (("(" expression* ")").) = ("(" expression* ")")
	 *   (."\t") = "\t"
	 * Up States:
	 *   expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")")).
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   (("(" expression* ")").) = ("(" expression* ")")
	 */
	private final State state76 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass4, state52) // "\t"
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass40, state92) // ' '
				.put(symbolClass3, state92) // '\n'
				.build();
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule35); // expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
		}

		@Override
		public String toString() {
			return "State76";
		}

	};

	/**
	 * Down States:
	 *   ("Productions") = "Pr.oductions"
	 */
	private final State state77 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass101, state48) // 'o'
				.build();
		}

		@Override
		public String toString() {
			return "State77";
		}

	};

	/**
	 * Up States:
	 *   ((expression "+")) = (expression."+")
	 *   ((expression "?")) = (expression."?")
	 *   ((expression "*")) = (expression."*")
	 *   expression. = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   rule = (expression."=" expression)
	 */
	private final State state78 = new State() {

		@Override
		public String toString() {
			return "State78";
		}

	};

	/**
	 * Down States:
	 *   ("Productions") = "Production.s"
	 */
	private final State state79 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass106, state56) // 's'
				.build();
		}

		@Override
		public String toString() {
			return "State79";
		}

	};

	/**
	 * Down States:
	 *   ("Tokens") = "Tokens."
	 */
	private final State state80 = new State() {

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule8); // ("Tokens") = "Tokens"
		}

		@Override
		public String toString() {
			return "State80";
		}

	};

	/**
	 * Down States:
	 *   (.(expression "?")) = (expression "?")
	 *   (.(expression "+")) = (expression "+")
	 *   ((expression "+")) = (.expression "+")
	 *   (("(" literal ".." literal ")")) = (."(" literal ".." literal ")")
	 *   (("(" literal ".." literal ")")) = ("(".literal ".." literal ")")
	 *   (.(expression "*")) = (expression "*")
	 *   ((expression "*")) = (.expression "*")
	 *   (("(" expression (("|" expression) ("|" expression)*) ")")) = ("(".expression (("|" expression) ("|" expression)*) ")")
	 *   (("(" expression (("|" expression) ("|" expression)*) ")")) = (."(" expression (("|" expression) ("|" expression)*) ")")
	 *   (.('a'..'z')) = ('a'..'z')
	 *   (.expression*) = expression*
	 *   (expression*) = expression*.
	 *   (('a'..'z')) = .('a'..'z')
	 *   ("\t") = ".\t"
	 *   expression = .(identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   ("\r\n") = ".\r\n"
	 *   identifier = (.(('a'..'z') | "_") (('a'..'z') | "_")*)
	 *   literal = (."\"" ('0'..'9') "\"")
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (.("(" expression (("|" expression) ("|" expression)*) ")")) = ("(" expression (("|" expression) ("|" expression)*) ")")
	 *   .literal = ("\"" ('0'..'9') "\"")
	 *   ((('a'..'z') | "_")) = .(('a'..'z') | "_")
	 *   (."\"") = "\""
	 *   ((expression "?")) = (.expression "?")
	 *   (."_") = "_"
	 *   ("(") = ".("
	 *   (("(" expression* ")")) = (."(" expression* ")")
	 *   (.("(" expression* ")")) = ("(" expression* ")")
	 *   .identifier = ((('a'..'z') | "_") (('a'..'z') | "_")*)
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   .expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   (expression*) = .expression*
	 *   ("_") = "._"
	 *   ("\"") = ".""
	 *   (("(" expression* ")")) = ("(".expression* ")")
	 *   ("(".) = "("
	 *   (."(") = "("
	 *   (.(('a'..'z') | "_")) = (('a'..'z') | "_")
	 *   (.("(" literal ".." literal ")")) = ("(" literal ".." literal ")")
	 *   (."\t") = "\t"
	 * Up States:
	 *   (.(expression "?")) = (expression "?")
	 *   (.(expression "+")) = (expression "+")
	 *   ((expression "+")) = (.expression "+")
	 *   (("(" literal ".." literal ")")) = (."(" literal ".." literal ")")
	 *   (("(" literal ".." literal ")")) = ("(".literal ".." literal ")")
	 *   (.(expression "*")) = (expression "*")
	 *   ((expression "*")) = (.expression "*")
	 *   (("(" expression (("|" expression) ("|" expression)*) ")")) = ("(".expression (("|" expression) ("|" expression)*) ")")
	 *   (("(" expression (("|" expression) ("|" expression)*) ")")) = (."(" expression (("|" expression) ("|" expression)*) ")")
	 *   rule = (.expression "=" expression)
	 *   expression = .(identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   identifier = (.(('a'..'z') | "_") (('a'..'z') | "_")*)
	 *   literal = (."\"" ('0'..'9') "\"")
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (.("(" expression (("|" expression) ("|" expression)*) ")")) = ("(" expression (("|" expression) ("|" expression)*) ")")
	 *   .literal = ("\"" ('0'..'9') "\"")
	 *   ((('a'..'z') | "_")) = .(('a'..'z') | "_")
	 *   ((expression "?")) = (.expression "?")
	 *   (("(" expression* ")")) = (."(" expression* ")")
	 *   (.("(" expression* ")")) = ("(" expression* ")")
	 *   .identifier = ((('a'..'z') | "_") (('a'..'z') | "_")*)
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   .expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   (("(" expression* ")")) = ("(".expression* ")")
	 *   .rule = (expression "=" expression)
	 *   (.(('a'..'z') | "_")) = (('a'..'z') | "_")
	 *   (.("(" literal ".." literal ")")) = ("(" literal ".." literal ")")
	 */
	private final State state81 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass31, state57) // "\""
				.put(symbolClass69, state7) // 'x'
				.put(symbolClass105, state7) // 't'
				.put(symbolClass114, state7) // 'g'
				.put(symbolClass132, state7) // 'b'
				.put(symbolClass104, state27) // "_"
				.put(symbolClass120, state7) // 'k'
				.put(symbolClass101, state7) // 'o'
				.put(symbolClass126, state7) // 'c'
				.put(symbolClass68, state7) // 'w'
				.put(symbolClass1, state14) // expression
				.put(symbolClass106, state7) // 's'
				.put(symbolClass89, state2) // ('a'..'z')
				.put(symbolClass121, state84) // rule
				.put(symbolClass39, state15) // '"'
				.put(symbolClass40, state92) // ' '
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass131, state7) // 'a'
				.put(symbolClass113, state7) // 'h'
				.put(symbolClass4, state52) // "\t"
				.put(symbolClass119, state7) // 'l'
				.put(symbolClass52, state75) // expression*
				.put(symbolClass99, state7) // 'p'
				.put(symbolClass124, state38) // '_'
				.put(symbolClass91, state93) // ("(" expression (("|" expression) ("|" expression)*) ")")
				.put(symbolClass23, state81) // "("
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass129, state7) // 'd'
				.put(symbolClass62, state7) // 'z'
				.put(symbolClass130, state1) // (expression "+")
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass100, state32) // (expression "?")
				.put(symbolClass66, state7) // 'v'
				.put(symbolClass10, state22) // literal
				.put(symbolClass103, state7) // 'm'
				.put(symbolClass42, state44) // (('a'..'z') | "_")
				.put(symbolClass83, state65) // ("(" literal ".." literal ")")
				.put(symbolClass123, state7) // 'i'
				.put(symbolClass133, state29) // (expression "*")
				.put(symbolClass118, state7) // 'e'
				.put(symbolClass111, state7) // 'q'
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass61, state7) // 'y'
				.put(symbolClass46, state63) // identifier
				.put(symbolClass64, state7) // 'u'
				.put(symbolClass102, state7) // 'n'
				.put(symbolClass122, state7) // 'j'
				.put(symbolClass22, state43) // '('
				.put(symbolClass116, state7) // 'f'
				.put(symbolClass80, state76) // ("(" expression* ")")
				.put(symbolClass109, state7) // 'r'
				.build();
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule26); // (expression*) = expression*
		}

		@Override
		public String toString() {
			return "State81";
		}

	};

	/**
	 * Down States:
	 *   (.rule*) = rule*
	 *   (.(expression "?")) = (expression "?")
	 *   (.(expression "+")) = (expression "+")
	 *   ((expression "+")) = (.expression "+")
	 *   (("(" literal ".." literal ")")) = (."(" literal ".." literal ")")
	 *   (.(expression "*")) = (expression "*")
	 *   ((expression "*")) = (.expression "*")
	 *   (("(" expression (("|" expression) ("|" expression)*) ")")) = (."(" expression (("|" expression) ("|" expression)*) ")")
	 *   (.('a'..'z')) = ('a'..'z')
	 *   rule = (.expression "=" expression)
	 *   (('a'..'z')) = .('a'..'z')
	 *   ("\t") = ".\t"
	 *   expression = .(identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   ("\r\n") = ".\r\n"
	 *   identifier = (.(('a'..'z') | "_") (('a'..'z') | "_")*)
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (.("(" expression (("|" expression) ("|" expression)*) ")")) = ("(" expression (("|" expression) ("|" expression)*) ")")
	 *   ((('a'..'z') | "_")) = .(('a'..'z') | "_")
	 *   production_section = ("Productions".rule*)
	 *   ((expression "?")) = (.expression "?")
	 *   (."_") = "_"
	 *   ("(") = ".("
	 *   (("(" expression* ")")) = (."(" expression* ")")
	 *   (.("(" expression* ")")) = ("(" expression* ")")
	 *   .identifier = ((('a'..'z') | "_") (('a'..'z') | "_")*)
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   .expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   ("Productions".) = "Productions"
	 *   (rule*) = rule*.
	 *   ("_") = "._"
	 *   (."(") = "("
	 *   (rule*) = .rule*
	 *   .rule = (expression "=" expression)
	 *   (.(('a'..'z') | "_")) = (('a'..'z') | "_")
	 *   (.("(" literal ".." literal ")")) = ("(" literal ".." literal ")")
	 *   (."\t") = "\t"
	 * Up States:
	 *   ((('a'..'z') | "_")) = .(('a'..'z') | "_")
	 *   (.(expression "?")) = (expression "?")
	 *   ((expression "+")) = (.expression "+")
	 *   (.(expression "+")) = (expression "+")
	 *   production_section = ("Productions".rule*)
	 *   ((expression "?")) = (.expression "?")
	 *   .identifier = ((('a'..'z') | "_") (('a'..'z') | "_")*)
	 *   (.("(" expression* ")")) = ("(" expression* ")")
	 *   (("(" expression* ")")) = (."(" expression* ")")
	 *   (("(" literal ".." literal ")")) = (."(" literal ".." literal ")")
	 *   ((expression "*")) = (.expression "*")
	 *   (.(expression "*")) = (expression "*")
	 *   (("(" expression (("|" expression) ("|" expression)*) ")")) = (."(" expression (("|" expression) ("|" expression)*) ")")
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   rule = (.expression "=" expression)
	 *   .expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   expression = .(identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   identifier = (.(('a'..'z') | "_") (('a'..'z') | "_")*)
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (.("(" expression (("|" expression) ("|" expression)*) ")")) = ("(" expression (("|" expression) ("|" expression)*) ")")
	 *   .rule = (expression "=" expression)
	 *   (.(('a'..'z') | "_")) = (('a'..'z') | "_")
	 *   (.("(" literal ".." literal ")")) = ("(" literal ".." literal ")")
	 */
	private final State state82 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass104, state27) // "_"
				.put(symbolClass118, state7) // 'e'
				.put(symbolClass109, state7) // 'r'
				.put(symbolClass62, state7) // 'z'
				.put(symbolClass100, state32) // (expression "?")
				.put(symbolClass102, state7) // 'n'
				.put(symbolClass130, state1) // (expression "+")
				.put(symbolClass122, state7) // 'j'
				.put(symbolClass66, state7) // 'v'
				.put(symbolClass132, state7) // 'b'
				.put(symbolClass116, state7) // 'f'
				.put(symbolClass23, state81) // "("
				.put(symbolClass111, state7) // 'q'
				.put(symbolClass103, state7) // 'm'
				.put(symbolClass123, state7) // 'i'
				.put(symbolClass64, state7) // 'u'
				.put(symbolClass131, state7) // 'a'
				.put(symbolClass61, state7) // 'y'
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass46, state63) // identifier
				.put(symbolClass4, state52) // "\t"
				.put(symbolClass133, state29) // (expression "*")
				.put(symbolClass99, state7) // 'p'
				.put(symbolClass126, state7) // 'c'
				.put(symbolClass22, state43) // '('
				.put(symbolClass89, state2) // ('a'..'z')
				.put(symbolClass113, state7) // 'h'
				.put(symbolClass119, state7) // 'l'
				.put(symbolClass83, state65) // ("(" literal ".." literal ")")
				.put(symbolClass1, state73) // expression
				.put(symbolClass69, state7) // 'x'
				.put(symbolClass105, state7) // 't'
				.put(symbolClass40, state92) // ' '
				.put(symbolClass121, state74) // rule
				.put(symbolClass101, state7) // 'o'
				.put(symbolClass129, state7) // 'd'
				.put(symbolClass91, state93) // ("(" expression (("|" expression) ("|" expression)*) ")")
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass124, state38) // '_'
				.put(symbolClass80, state76) // ("(" expression* ")")
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass114, state7) // 'g'
				.put(symbolClass120, state7) // 'k'
				.put(symbolClass42, state44) // (('a'..'z') | "_")
				.put(symbolClass68, state7) // 'w'
				.put(symbolClass14, state19) // rule*
				.put(symbolClass106, state7) // 's'
				.build();
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule40); // (rule*) = rule*
		}

		@Override
		public String toString() {
			return "State82";
		}

	};

	/**
	 * Down States:
	 *   ("\t") = ".\t"
	 *   start = (.^ grammar $)
	 *   ("\r\n") = ".\r\n"
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   (."\t") = "\t"
	 * Up States:
	 *   start = (.^ grammar $)
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   .start = (^ grammar $)
	 */
	private final State state83 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass40, state92) // ' '
				.put(symbolClass50, state11) // ^
				.put(symbolClass107, state37) // start
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass4, state52) // "\t"
				.build();
		}

		@Override
		public String toString() {
			return "State83";
		}

	};

	/**
	 * Up States:
	 *   rule. = (expression "=" expression)
	 */
	private final State state84 = new State() {

		@Override
		public String toString() {
			return "State84";
		}

	};

	/**
	 * Down States:
	 *   ("..") = "..."
	 */
	private final State state85 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass34, state20) // '.'
				.build();
		}

		@Override
		public String toString() {
			return "State85";
		}

	};

	/**
	 * Down States:
	 *   (.(expression "?")) = (expression "?")
	 *   (.(expression "+")) = (expression "+")
	 *   ((expression "+")) = (.expression "+")
	 *   (("(" literal ".." literal ")")) = (."(" literal ".." literal ")")
	 *   ((expression "*")) = (.expression "*")
	 *   (.(expression "*")) = (expression "*")
	 *   (("(" expression (("|" expression) ("|" expression)*) ")")) = (."(" expression (("|" expression) ("|" expression)*) ")")
	 *   (.('a'..'z')) = ('a'..'z')
	 *   rule = (expression "=".expression)
	 *   (('a'..'z')) = .('a'..'z')
	 *   expression = .(identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   ("\t") = ".\t"
	 *   identifier = (.(('a'..'z') | "_") (('a'..'z') | "_")*)
	 *   ("\r\n") = ".\r\n"
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (.("(" expression (("|" expression) ("|" expression)*) ")")) = ("(" expression (("|" expression) ("|" expression)*) ")")
	 *   ("=".) = "="
	 *   ((('a'..'z') | "_")) = .(('a'..'z') | "_")
	 *   ((expression "?")) = (.expression "?")
	 *   (."_") = "_"
	 *   ("(") = ".("
	 *   .identifier = ((('a'..'z') | "_") (('a'..'z') | "_")*)
	 *   (.("(" expression* ")")) = ("(" expression* ")")
	 *   (("(" expression* ")")) = (."(" expression* ")")
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   .expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   ("_") = "._"
	 *   (."(") = "("
	 *   (.(('a'..'z') | "_")) = (('a'..'z') | "_")
	 *   (.("(" literal ".." literal ")")) = ("(" literal ".." literal ")")
	 *   (."\t") = "\t"
	 * Up States:
	 *   ((('a'..'z') | "_")) = .(('a'..'z') | "_")
	 *   (.(expression "?")) = (expression "?")
	 *   ((expression "+")) = (.expression "+")
	 *   (.(expression "+")) = (expression "+")
	 *   ((expression "?")) = (.expression "?")
	 *   .identifier = ((('a'..'z') | "_") (('a'..'z') | "_")*)
	 *   (.("(" expression* ")")) = ("(" expression* ")")
	 *   (("(" expression* ")")) = (."(" expression* ")")
	 *   (("(" literal ".." literal ")")) = (."(" literal ".." literal ")")
	 *   ((expression "*")) = (.expression "*")
	 *   (.(expression "*")) = (expression "*")
	 *   (("(" expression (("|" expression) ("|" expression)*) ")")) = (."(" expression (("|" expression) ("|" expression)*) ")")
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   rule = (.expression "=" expression)
	 *   rule = (expression "=".expression)
	 *   .expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   expression = .(identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   identifier = (.(('a'..'z') | "_") (('a'..'z') | "_")*)
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (.("(" expression (("|" expression) ("|" expression)*) ")")) = ("(" expression (("|" expression) ("|" expression)*) ")")
	 *   .rule = (expression "=" expression)
	 *   (.(('a'..'z') | "_")) = (('a'..'z') | "_")
	 *   (.("(" literal ".." literal ")")) = ("(" literal ".." literal ")")
	 */
	private final State state86 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass133, state29) // (expression "*")
				.put(symbolClass102, state7) // 'n'
				.put(symbolClass119, state7) // 'l'
				.put(symbolClass104, state27) // "_"
				.put(symbolClass122, state7) // 'j'
				.put(symbolClass42, state44) // (('a'..'z') | "_")
				.put(symbolClass46, state63) // identifier
				.put(symbolClass99, state7) // 'p'
				.put(symbolClass132, state7) // 'b'
				.put(symbolClass22, state43) // '('
				.put(symbolClass121, state84) // rule
				.put(symbolClass66, state7) // 'v'
				.put(symbolClass80, state76) // ("(" expression* ")")
				.put(symbolClass69, state7) // 'x'
				.put(symbolClass129, state7) // 'd'
				.put(symbolClass83, state65) // ("(" literal ".." literal ")")
				.put(symbolClass118, state7) // 'e'
				.put(symbolClass4, state52) // "\t"
				.put(symbolClass40, state92) // ' '
				.put(symbolClass89, state2) // ('a'..'z')
				.put(symbolClass105, state7) // 't'
				.put(symbolClass123, state7) // 'i'
				.put(symbolClass114, state7) // 'g'
				.put(symbolClass109, state7) // 'r'
				.put(symbolClass1, state88) // expression
				.put(symbolClass91, state93) // ("(" expression (("|" expression) ("|" expression)*) ")")
				.put(symbolClass130, state1) // (expression "+")
				.put(symbolClass101, state7) // 'o'
				.put(symbolClass111, state7) // 'q'
				.put(symbolClass120, state7) // 'k'
				.put(symbolClass64, state7) // 'u'
				.put(symbolClass100, state32) // (expression "?")
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass62, state7) // 'z'
				.put(symbolClass61, state7) // 'y'
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass68, state7) // 'w'
				.put(symbolClass131, state7) // 'a'
				.put(symbolClass126, state7) // 'c'
				.put(symbolClass103, state7) // 'm'
				.put(symbolClass124, state38) // '_'
				.put(symbolClass23, state81) // "("
				.put(symbolClass113, state7) // 'h'
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass116, state7) // 'f'
				.put(symbolClass106, state7) // 's'
				.build();
		}

		@Override
		public String toString() {
			return "State86";
		}

	};

	/**
	 * Down States:
	 *   ((expression "+")) = (expression."+")
	 *   (.(expression "?")) = (expression "?")
	 *   (.(expression "+")) = (expression "+")
	 *   ((expression "+")) = (.expression "+")
	 *   (("(" literal ".." literal ")")) = (."(" literal ".." literal ")")
	 *   ((expression "*")) = (expression."*")
	 *   (.(expression "*")) = (expression "*")
	 *   ((expression "*")) = (.expression "*")
	 *   ("+") = ".+"
	 *   (("(" expression (("|" expression) ("|" expression)*) ")")) = (."(" expression (("|" expression) ("|" expression)*) ")")
	 *   (.('a'..'z')) = ('a'..'z')
	 *   ("?") = ".?"
	 *   (expression*) = expression*.
	 *   (('a'..'z')) = .('a'..'z')
	 *   ("\t") = ".\t"
	 *   expression = .(identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   ("\r\n") = ".\r\n"
	 *   identifier = (.(('a'..'z') | "_") (('a'..'z') | "_")*)
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (.("(" expression (("|" expression) ("|" expression)*) ")")) = ("(" expression (("|" expression) ("|" expression)*) ")")
	 *   (."+") = "+"
	 *   (."?") = "?"
	 *   ((('a'..'z') | "_")) = .(('a'..'z') | "_")
	 *   ((expression "?")) = (.expression "?")
	 *   (."_") = "_"
	 *   ("(") = ".("
	 *   (("(" expression* ")")) = (."(" expression* ")")
	 *   (.("(" expression* ")")) = ("(" expression* ")")
	 *   ((expression "?")) = (expression."?")
	 *   .identifier = ((('a'..'z') | "_") (('a'..'z') | "_")*)
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   expression. = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   (."*") = "*"
	 *   .expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   ("*") = ".*"
	 *   ("_") = "._"
	 *   (."(") = "("
	 *   (.(('a'..'z') | "_")) = (('a'..'z') | "_")
	 *   (.("(" literal ".." literal ")")) = ("(" literal ".." literal ")")
	 *   (."\t") = "\t"
	 * Up States:
	 *   (.(expression "?")) = (expression "?")
	 *   ((expression "+")) = (expression."+")
	 *   (.(expression "+")) = (expression "+")
	 *   ((expression "+")) = (.expression "+")
	 *   (("(" literal ".." literal ")")) = (."(" literal ".." literal ")")
	 *   ((expression "*")) = (expression."*")
	 *   (.(expression "*")) = (expression "*")
	 *   ((expression "*")) = (.expression "*")
	 *   (("(" expression (("|" expression) ("|" expression)*) ")")) = (."(" expression (("|" expression) ("|" expression)*) ")")
	 *   rule = (.expression "=" expression)
	 *   rule = (expression."=" expression)
	 *   expression = .(identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   identifier = (.(('a'..'z') | "_") (('a'..'z') | "_")*)
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (.("(" expression (("|" expression) ("|" expression)*) ")")) = ("(" expression (("|" expression) ("|" expression)*) ")")
	 *   ((('a'..'z') | "_")) = .(('a'..'z') | "_")
	 *   ((expression "?")) = (.expression "?")
	 *   ((expression "?")) = (expression."?")
	 *   (("(" expression* ")")) = (."(" expression* ")")
	 *   (.("(" expression* ")")) = ("(" expression* ")")
	 *   .identifier = ((('a'..'z') | "_") (('a'..'z') | "_")*)
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   expression. = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   .expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   .rule = (expression "=" expression)
	 *   (.(('a'..'z') | "_")) = (('a'..'z') | "_")
	 *   (.("(" literal ".." literal ")")) = ("(" literal ".." literal ")")
	 */
	private final State state87 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass103, state7) // 'm'
				.put(symbolClass133, state29) // (expression "*")
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass62, state7) // 'z'
				.put(symbolClass88, state55) // "+"
				.put(symbolClass40, state92) // ' '
				.put(symbolClass129, state7) // 'd'
				.put(symbolClass104, state27) // "_"
				.put(symbolClass123, state7) // 'i'
				.put(symbolClass74, state26) // "?"
				.put(symbolClass64, state7) // 'u'
				.put(symbolClass111, state7) // 'q'
				.put(symbolClass61, state7) // 'y'
				.put(symbolClass13, state54) // '+'
				.put(symbolClass102, state7) // 'n'
				.put(symbolClass18, state95) // '*'
				.put(symbolClass130, state1) // (expression "+")
				.put(symbolClass126, state7) // 'c'
				.put(symbolClass100, state32) // (expression "?")
				.put(symbolClass122, state7) // 'j'
				.put(symbolClass124, state38) // '_'
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass66, state7) // 'v'
				.put(symbolClass109, state7) // 'r'
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass69, state7) // 'x'
				.put(symbolClass89, state2) // ('a'..'z')
				.put(symbolClass120, state7) // 'k'
				.put(symbolClass22, state43) // '('
				.put(symbolClass1, state87) // expression
				.put(symbolClass4, state52) // "\t"
				.put(symbolClass132, state7) // 'b'
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass114, state7) // 'g'
				.put(symbolClass42, state44) // (('a'..'z') | "_")
				.put(symbolClass91, state93) // ("(" expression (("|" expression) ("|" expression)*) ")")
				.put(symbolClass116, state7) // 'f'
				.put(symbolClass21, state66) // "*"
				.put(symbolClass101, state7) // 'o'
				.put(symbolClass106, state7) // 's'
				.put(symbolClass119, state7) // 'l'
				.put(symbolClass68, state7) // 'w'
				.put(symbolClass46, state63) // identifier
				.put(symbolClass85, state8) // '?'
				.put(symbolClass113, state7) // 'h'
				.put(symbolClass131, state7) // 'a'
				.put(symbolClass83, state65) // ("(" literal ".." literal ")")
				.put(symbolClass80, state76) // ("(" expression* ")")
				.put(symbolClass118, state7) // 'e'
				.put(symbolClass99, state7) // 'p'
				.put(symbolClass23, state81) // "("
				.put(symbolClass121, state84) // rule
				.put(symbolClass105, state7) // 't'
				.build();
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule26); // (expression*) = expression*
		}

		@Override
		public String toString() {
			return "State87";
		}

	};

	/**
	 * Down States:
	 *   rule = (expression "=" expression.)
	 *   ((expression "+")) = (expression."+")
	 *   ((expression "?")) = (expression."?")
	 *   ((expression "*")) = (expression."*")
	 *   (."\r\n") = "\r\n"
	 *   ("+") = ".+"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   expression. = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   ("?") = ".?"
	 *   (."*") = "*"
	 *   ("*") = ".*"
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (."+") = "+"
	 *   (."?") = "?"
	 *   (."\t") = "\t"
	 * Up States:
	 *   ((expression "+")) = (expression."+")
	 *   rule = (expression "=" expression.)
	 *   ((expression "?")) = (expression."?")
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   ((expression "*")) = (expression."*")
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   expression. = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
	 *   rule = (expression."=" expression)
	 */
	private final State state88 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass4, state52) // "\t"
				.put(symbolClass40, state92) // ' '
				.put(symbolClass74, state26) // "?"
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass18, state95) // '*'
				.put(symbolClass13, state54) // '+'
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass85, state8) // '?'
				.put(symbolClass88, state55) // "+"
				.put(symbolClass21, state66) // "*"
				.put(symbolClass6, state45) // '\r'
				.build();
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule4); // rule = (expression "=" expression)
		}

		@Override
		public String toString() {
			return "State88";
		}

	};

	/**
	 * Down States:
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   start = (^ grammar $.)
	 *   (."\t") = "\t"
	 * Up States:
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   start = (^ grammar $.)
	 */
	private final State state89 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass4, state52) // "\t"
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass40, state92) // ' '
				.build();
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule2); // start = (^ grammar $)
		}

		@Override
		public String toString() {
			return "State89";
		}

	};

	/**
	 * Down States:
	 *   ("|") = "|."
	 */
	private final State state90 = new State() {

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule21); // ("|") = "|"
		}

		@Override
		public String toString() {
			return "State90";
		}

	};

	/**
	 * Down States:
	 *   ("Tokens") = "To.kens"
	 */
	private final State state91 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass120, state69) // 'k'
				.build();
		}

		@Override
		public String toString() {
			return "State91";
		}

	};

	/**
	 * Down States:
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   () = (' ' | '\n' | "\r\n" | "\t").
	 *   (."\t") = "\t"
	 * Up States:
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   () = (' ' | '\n' | "\r\n" | "\t").
	 */
	private final State state92 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass4, state52) // "\t"
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass40, state92) // ' '
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass98, state70) // "\r\n"
				.build();
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule13); // () = (' ' | '\n' | "\r\n" | "\t")
		}

		@Override
		public String toString() {
			return "State92";
		}

	};

	/**
	 * Down States:
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")")).
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (("(" expression (("|" expression) ("|" expression)*) ")").) = ("(" expression (("|" expression) ("|" expression)*) ")")
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   (."\t") = "\t"
	 * Up States:
	 *   expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")")).
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (("(" expression (("|" expression) ("|" expression)*) ")").) = ("(" expression (("|" expression) ("|" expression)*) ")")
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 */
	private final State state93 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass40, state92) // ' '
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass4, state52) // "\t"
				.build();
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule35); // expression = (identifier | ("(" expression* ")") | ("(" expression (("|" expression) ("|" expression)*) ")") | (expression "?") | (expression "*") | (expression "+") | ("(" literal ".." literal ")"))
		}

		@Override
		public String toString() {
			return "State93";
		}

	};

	/**
	 * Down States:
	 *   ("\t") = ".\t"
	 *   ("\r\n") = ".\r\n"
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (."\r\n") = "\r\n"
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   (production_section?.) = production_section?
	 *   (."\t") = "\t"
	 *   grammar = (token_section? production_section?.)
	 * Up States:
	 *   () = .(' ' | '\n' | "\r\n" | "\t")
	 *   (.) = (' ' | '\n' | "\r\n" | "\t")
	 *   (production_section?.) = production_section?
	 *   grammar = (token_section? production_section?.)
	 */
	private final State state94 = new State() {

		protected ImmutableMap<SymbolClass, State> computeNextStates() {
			return ImmutableMap.<SymbolClass, State>builder()
				.put(symbolClass98, state70) // "\r\n"
				.put(symbolClass6, state45) // '\r'
				.put(symbolClass4, state52) // "\t"
				.put(symbolClass2, state61) // '\t'
				.put(symbolClass3, state92) // '\n'
				.put(symbolClass40, state92) // ' '
				.build();
		}

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule16); // grammar = (token_section? production_section?)
		}

		@Override
		public String toString() {
			return "State94";
		}

	};

	/**
	 * Down States:
	 *   ("*") = "*."
	 */
	private final State state95 = new State() {

		@Override
		public void queueReductions(Symbol<?> symbol) {
			Parser.this.queueReductions(rule20); // ("*") = "*"
		}

		@Override
		public String toString() {
			return "State95";
		}

	};

}
